双链表:
由于单链表在插入删除某元素操作时时间复杂度过高
所以在单链表的基础上拓展为双链表


typedef struct DNode{
ElemType data;
struct DNode *prior *next;
}DNode, *DLinklist;
插入操作



删除操作:



循环链表:
如果在单链表中,我们只知道单链表的尾指针,不知道单链表的头指针
那么我们无法通过尾指针来获取头指针
(所以我们引入循环链表)
循环单链表


循环双链表:


判空条件:
循环单链表:当 L -> next == L; 时为空
循环双链表:当L -> next == L&&L -> prior == L 时为空

静态链表:
用数组存储元素,用数组下标当作地址
最后一个元素所连接的地址为-1
一般用于没有指针的高级语言当中

本文深入解析了链表的各种形态,包括单链表、双链表、循环链表和静态链表,探讨了它们的特点和应用场景,如双链表在插入删除操作上的优势,循环链表在解决尾指针指向头指针的问题,以及静态链表如何利用数组实现链表功能。

2713

被折叠的 条评论
为什么被折叠?



