我是靠谱客的博主 时尚百褶裙,最近开发中收集的这篇文章主要介绍数据结构与算法学习:3.双向链表1 双链表2.双向链表的相关操作及实现3 完整代码和运行测试4 总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1 双链表
- 1.1 双向链表的定义
- 1.2 双向链表相较于单向链表的优点
- 2.双向链表的相关操作及实现
- 2.1 链表的初始化
- 2.2 链表中元素的打印
- 2.3 在指定的位置插入元素
- 2.4 删除指定元素
- 2.5结点的查找
- 2.6 整表的删除
- 3 完整代码和运行测试
- 4 总结
1 双链表
1.1 双向链表的定义
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱点和后继结点。
1.2 双向链表相较于单向链表的优点
既然双向链表的每个数据结点中都有两个指针,那么它相较于单向链表的优点就很明显了,那就是它可以找到前驱和后继,可进可退,而单向链表只能找到后继,无法找到前驱,也就是只能前进。
2.双向链表的相关操作及实现
2.1 链表的初始化
// 初始化表
DLNodePtr initLinkList(){
DLNodePtr tempHeader = (DLNodePtr)malloc(sizeof(struct DoubleLinkedNode));
tempHeader->data = '