C语言如何实现双向链表和双向循环链表
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本文小编为大家详细介绍"C语言如何实现双向链表和双向循环链表",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言如何实现双向链表和双向循环链表"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月18日C语言如何实现双向链表和双向循环链表
本文小编为大家详细介绍"C语言如何实现双向链表和双向循环链表",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言如何实现双向链表和双向循环链表"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
双向链表和双向循环链表
和单向链表相比,多了一个前驱结点。如果他为空,那么next和prior都指向自己。而对于双循环链表,只需要最后一个元素的next指向head->next,head->next的prior指向最后一个节点即可。
插入操作
新节点s插入链表,s->next给p结点,s->prior给p->prior,然后,p->prior->next指向s,p->prior再指向s。顺序需要注意
s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s;
删除操作
删除结点p。p->next->prior 指向 p->prior,p->prior->next 指向 p->next 。最后将p结点delete。
p->prior->next = p->next;p->next->prior = p->prior;delete p;
实例操作
(附截图)
注意:因为函数没有返回Node*类型,所以这里对指针进行引用,否则在退出函数的时候,并没有保存改变。如果需要删除全部链表,需要保存InitList之后的head地址,否则会遗漏一个Node结点没有删除。
代码实现:
#include#include #include using namespace std;const int OK = 1;const int ERROR = 0;const int LETTERNUM = 26;typedef char ElemType;struct Node{ ElemType data; Node * prior;//前驱结点 Node * next;//后驱结点 };int InitList(Node *&L){ Node *p,*q; int i; L = new Node; //头结点 L->next = L->prior = NULL; p = L; //p是当前指针 for(int i=0;i data = 'A' + i; q->prior = p; q->next = p->next; p->next = q; p = q;//指针移动 } p->next = L->next; //尾结点指向head->next(第一个有字母的地址) L->next->prior = p; return OK;}void Change(Node *&L,int i){ //移动头指针 if (i>0){ while(i--){ L = L->next; } } else if (i<0){ L = L->next ; while(i++){ L = L->prior; } } else{ L = L->next; }}int main(){ Node *head = NULL; int i,n; InitList(head); //Node *s_head = head; // 保存头结点之后删除 cout<<"输入位置:"< >n; Change(head,n); for(i = 0;i next; cout< data<<" "; } cout< 读到这里,这篇"C语言如何实现双向链表和双向循环链表"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
结点
双向
指向
环链
指针
语言
文章
内容
函数
前驱
地址
节点
移动
妥当
代码
位置
元素
单向
双循环
字母
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
vb数据库查询单引号
宠物店数据管理数据库
富阳租房软件开发
非法软件开发流程
thpa数据库
数据库怎么设置文件大小
护苗网络安全课课程
数据库安全近期报道
500 服务器的内部错误
群晖服务器内存不足
广东hp服务器阵列卡电池
可谷网络技术有限公司
国产芯片四路服务器
百独服务器租用
git服务器怎么备份
网络安全与文化保护有关
蓝盾网络安全信息学院
人社app登录显示服务器异常
网络安全技术应用规范
软件做需求与软件开发哪个重要
主机服务器统一 申请书
apex英雄服务器为什么这么差
中国社会与经济发展数据库
药智数据库介绍
如何批量隐藏数据库
个人开票服务器管理系统
网络安全教育知识群众
网络安全 马化腾
网络安全 政府报告
乐山服务器云存储生产厂家