单向链表和双向链表区别(单链表和双向链表的区别)

单向链表和双向链表区别(单链表和双向链表的区别)单向链表 由两部分组成 数据域和指针域 每个结点都有一个指针 每个节点指针的指向都是指向自身结点的下一个结点 最后一个结点的 head 指向为 null 对单链表的操作只能从一端开始 如果需要查找链表中的某一个结点 则需要 从头开始进行遍历 双向链表 对于双向链表来说 它的每个节点要指向 直接前驱 和 直接后继 所以节点类需要含有两个指针域 指向直接前驱的指针使用 pre 表示 指向后继的指针使用 next 表示 双向链表是在单向链表基础上的一个改进 每个节点指向其直接前驱和直接后继节点 因此



单向链表:

由两部分组成:数据域和指针域,每个结点都有一个指针,每个节点指针的指向都是指向自身结点的下一个结点,最后一个结点的head指向为null,对单链表的操作只能从一端开始,如果需要查找链表中的某一个结点,则需要从头开始进行遍历

双向链表:

对于双向链表来说,它的每个节点要指向“直接前驱”和“直接后继”,所以节点类需要含有两个指针域。指向直接前驱的指针使用pre表示,指向后继的指针使用next表示。双向链表是在单向链表基础上的一个改进,每个节点指向其直接前驱和直接后继节点。因此,从双向链表的任意位置开始,都能访问所有的节点

双向链表从节点的结构上可以看出,双向链表的所需的存储空间大于单向链表。同时,对于插入和删除等操作来说,双向链表的节点操作更加复杂,涉及到节点的前后两个节点。

代码实现可见:https://zhuanlan.zhihu.com/p/109926262

单向链表

双向链表

查找

只能找到后继

找到前驱和后继

遍历

只能从头到尾遍历,但遍历时候不会死循环

可进可退,但遍历复杂

增删节点

增加删除节点简单

增加删除节点复杂

内存

相比较小

多分配一个前驱指针存储空间

适用场合

节点的增加删除频繁,内存较小场合

需要双向查找节点值的场合

编程小号
上一篇 2025-03-04 20:01
下一篇 2025-02-21 23:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/36629.html