数据结构—线性结构—(特殊链表)

双链表:

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

typedef struct DNode{
    
    
	ElemType data;
	struct DNode *prior *next;
}DNode, *DLinklist;

插入操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除操作:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

循环链表:

如果在单链表中,我们只知道单链表的尾指针,不知道单链表的头指针

那么我们无法通过尾指针来获取头指针

(所以我们引入循环链表)

循环单链表

在这里插入图片描述
在这里插入图片描述

循环双链表:

在这里插入图片描述
在这里插入图片描述

判空条件:

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

在这里插入图片描述

静态链表:

用数组存储元素,用数组下标当作地址

最后一个元素所连接的地址为-1

一般用于没有指针的高级语言当中

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43652327/article/details/105201714
今日推荐