2024.3.15
芝士wa
参考视频:bilibli-数据结构-链表 “印度小哥讲得真好”
链表
- 对于链表来说,存储数据需要两个部门,一是数据本身,二是指针,该指针指向下一个数据的地址,依次链接,直到末了一个元素,指针指向空(NULL)
- 遍历的时间复杂度为O(n)
- 插入的时间复杂度为O(n)
- 删除的时间复杂度为O(n)
链表VS数组
- 数组是连续存储空间,链表通过指针维系,存储数据并不连续
- 数组可以通过下标访问元素,只需要O(1)的时间复杂度,而链表则必须按照顺序访问,因此时间复杂度为O(n/2) = O(n)
- 数组的大小是固定的,在创建数组时确认
- 上风:链表在添加或删除元素时,制止了不相关元素的复制移动,空间复杂度较小
- 使用链表时,要格外注意指针问题
链表的C++实现
完整代码
- 模板,泛型
- 内部维护链表长度
- 分别用递归和迭代的方式实现了打印和反转
- 进行了简单的越界判定处置惩罚
双向链表
- template<class T>
- class Node
- {
- T data;
- Node* prev;
- Node* next;
- };
复制代码 总结
本文先容了链表的概念和特性,并用C++实现了单链表。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |