🔥 博客主页: 偷心编程
🎥 系列专栏: 《Java学习》 《C语言学习》 《数据结构C语言版》
❤️ 感谢大家点赞👍收藏⭐评论✍️


我们在前面就说了链表最常用的两种结构就是 “单链表”(无头单向不循环链表)以及 “双向链表”(有头双向循环链表),掌握了这两种方法,其他类型的链表也可以定义出来。
在单链表中的头结点与双向链表中的头结点不太一样!单链表中的头结点是指——第一个有效数据,这个头结点可以改变也可以为NULL;但是双向链表中的头结点是指——“哨兵位”节点,一定存在,并且这个节点不存储有效数据,是不可以改变的。

- 直接在main创建头结点,并且给其里面数据初始化
- 自定义BuyNode函数进行初始化
总之双向链表一定要创造一个不为空的头结点(哨兵位)
其次在创造新的节点的时候,指向前面后面的两个节点指针并不等于NULL,而是指向自己本身,这样才体现了循环
- 由于双向链表的头结点不会改变,所以我们在实现各类方法的时候都是传入一级指针,而不是二级指针。
- 不难从尾插方法看出,由于双向链表的结构特性,我们除了打印链表、查找和销毁链表需要进行循环,其他的方法我们很少用到循环(比如找尾节点)
- 我们在插入一个节点的时候,同样是先改变外部环境(新创建的节点),最后再改变内部环境(插入位置前后节点的prev或next)
到此这篇单向链表和双向链表区别(单向链表和双向链表区别在哪)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!固定套路:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qkl-jc/20333.html