news 2026/3/21 6:13:41

数据结构-双链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构-双链表

双链表其实和单链表区别不大

双链表的定义

双链表其实就是前后都可以走的链表,常规的单链表无法通过后一个节点来找到前面的节点,但双链表的单个节点同时存储了前一个和后一个节点。这便让双链表可以进行双向搜索。双链表通过这种方法降低了搜索的复杂度(在特定情况下)。

双链表的代码实现

#include<iostream> #include<stdio.h> using namespace std; struct Node{ Node* pre; Node* next; int data; }; int main(){ //创建链表并连起来 Node* A = new Node(); Node* B = new Node(); A -> next = B; A -> pre = NULL; B -> next = NULL; B -> pre = A; A -> data = 1; B -> data = 2; //尝试输出 //正向输出 Node* current = A; printf("%d\n" , current -> data); current = current -> next; printf("%d\n\n" , current -> data); //反向输出 current = B; printf("%d\n" , current -> data); current = current -> pre; printf("%d\n" , current -> data); }

便于展示,我就不弄特别麻烦了

你也可以对双链表进行删除操作

#include<iostream> #include<stdio.h> using namespace std; struct Node{ Node* pre; Node* next; int data; }; int main(){ //创建链表并连起来 Node* A = new Node(); Node* B = new Node(); Node* C = new Node(); A -> next = B; A -> pre = NULL; B -> next = C; B -> pre = A; C -> next = NULL; C -> pre = B; A -> data = 1; B -> data = 2; C -> data = 3; int pos; scanf("%d" , &pos); Node* current = A; //把 current 定位到你想删除的位置 for(int i = 0 ; i < pos ; i++){ current = current -> next; if(current == NULL){ printf("Failed\n"); return 0; } } //temp是要删除的前面一个 Node* temp = current -> pre; temp -> next = current -> next; delete current; //输出 current = A; while(current != NULL){ printf("%d " , current -> data); current = current -> next; } }

简单演示了一下

总结

双链表其实就是单链表的PLUS版本,没有什么特别不好理解的地方。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 23:48:09

数据结构-双链表实现栈和队列

栈和队列是比较简单且常见的数据结构&#xff0c;你可以使用C STL中的stack和queue容器来实现栈和队列&#xff0c;当然&#xff0c;如果你比较有追求&#xff0c;也可以手搓栈和队列(虽然这个搓起来不是特别麻烦)&#xff0c;本文重点讲解如何实现双链表实现栈和队列。 栈和队…

作者头像 李华
网站建设 2026/3/16 5:33:16

仿天猫商城系统开发指南:核心技术与周期详解

开发一个仿天猫商城系统&#xff0c;需要理解大型电商平台的业务逻辑和技术架构。这类系统不仅包含商品展示、购物车、订单支付等基础功能&#xff0c;更要应对高并发访问、海量数据处理和安全挑战。从我的经验看&#xff0c;成功的关键在于明确业务目标、选择合适的技术栈并进…

作者头像 李华
网站建设 2026/3/15 16:45:26

colorref转color16方法 颜色格式转换教程

在处理图形界面或嵌入式显示开发时&#xff0c;我们经常需要在不同的颜色表示格式之间进行转换。其中&#xff0c;将Windows平台常见的COLORREF格式转换为节省内存的16位颜色&#xff08;color16&#xff09;格式&#xff0c;是一个实用且必要的操作。理解其原理和实现方法&…

作者头像 李华
网站建设 2026/3/15 20:36:35

剑网三键盘延迟失灵?快速排查修复教程

在《剑网三》这类对操作流畅度要求较高的MMORPG中&#xff0c;键盘输入的准确性直接影响到PVE副本的输出循环和PVP竞技中的反应与连招。一旦出现输入延迟、按键失灵或错乱&#xff0c;游戏体验会大打折扣。本文将结合常见问题&#xff0c;分享一些实用的排查和优化思路。 剑网…

作者头像 李华
网站建设 2026/3/19 0:47:48

2026年工业AI如何落地?服务商综合实力排行榜

1月13日&#xff0c;工信部发布了《工业互联网和人工智能融合赋能行动方案》。这份文件为我们勾勒出一幅清晰的图景——到2028年&#xff0c;中国将初步建成一个泛在智能、深度协同、开放共赢的新一代工业互联网生态。说得更实在些&#xff0c;到时国内要有超过450家拿得出手的…

作者头像 李华
网站建设 2026/3/20 12:22:56

如何选择一家靠谱的工业数据智能公司?关键能力解析

在工业4.0与智能制造浪潮之中&#xff0c;一家真正意义上的工业数据智能公司&#xff0c;早已超越了简单提供数据工具的角色。它们更像是一位系统重构者——以数据为血脉&#xff0c;智能为神经&#xff0c;重新编写制造的底层逻辑。在这条路上&#xff0c;广域铭岛逐渐显露出其…

作者头像 李华