9.25
今天上了数据结构的课,学习了链表的增删改查。
初次接触链表时,我总忍不住拿它和熟悉的数组对比——数组有固定大小、能通过下标快速访问,可链表靠指针连接节点,“改查操作”更像“遍历的效率考验”。查节点时,链表没有下标可依,只能从表头开始逐个遍历,最坏情况要走完全部节点(时间复杂度O(n)),这和数组O(1)的随机访问形成鲜明对比。我曾试着用链表存1000个数据,查最后一个元素时明显感觉到循环的“延迟”,也终于懂了为什么老师说“频繁查询选数组,频繁增删选链表”——数据结构的选择,从来不是“哪个更好”,而是“哪个更适配场景”。而修改操作其实是“查+改”的结合,先通过遍历找到目标节点,再修改它的数据域。
这次学习最意外的收获,是跳出了“代码本身”的局限。以前写代码只关注“功能实现”,但链表让我明白:数据结构的逻辑比语法更关键。比如同样是“增节点”,头插法能快速在表头添加(O(1)),尾插法却要遍历到表尾(O(n)),现在再看链表,它不再是课本上抽象的“节点+指针”图示,而是能根据需求灵活调整的“工具”:需要快速增删时用单链表,需要双向遍历用双链表,需要循环访问用循环链表,这种“按需选择”的思维,比单纯学会增删改查更有价值。
浙公网安备 33010602011771号