单链表:
一.单链表与顺序表相比:
1.顺序表可以方便的随机存取表中的任一节点,速度快;但是在表中插入删除一个数据时,为了保持其他元素的相对次序不变,平均需要移动一半的元素,效率很低;还有若事先对表长估计不足,过小会形成内存浪费,过大则需要拷贝到一个更大的数组,时间开销很大。
2.相反,链表则适用于插入删除频繁,表长估计不定的情形。
3.单链表中的逻辑位置连续,物理位置非连续;而顺序表都连续。
二.为什么要带附加表头?
因为不带附加表头在插入删除时要分两种情况:操作节点在表头和不在表头;而带了附加表头便可以对所有节点一视同仁。
循环链表的目的是只要知道表中任一一个节点的地址,就能遍历表中其他任一节点。
双向链表的目的是为了解决在链表中不同方向(前/后)访问元素的问题。
待更新