用C++编写的双向链表程序示例_第1页
用C++编写的双向链表程序示例_第2页
用C++编写的双向链表程序示例_第3页
用C++编写的双向链表程序示例_第4页
用C++编写的双向链表程序示例_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、。/*用C编写一个双链表的程序* * * * * * * * * * * * */* -本文可以帮助大家快速的学习如何建立双向链表,以及对双向链表进行的相关操作,比如删除节点、插入节点、链表排序、计算链表长度、打印双向链表等操作- */#包括使用命名空间标准;/定义双向链表的节点typedef结构学生int数据;结构学生* pre结构学生*下一个; dnode/建立双向链表dnode *creat()整数周期=1;int x;dnode *head,*t,* s=NULLhead=新的dnodet=头部。而(循环(请输入一个整数类型数字:cin十号;if (x!=0)s=新的dnodes-数据

2、=x。t-next=s;s-pre=t .t=s .其他周期=0;head=head-next;前置头=空;下一个=空;cout 第一个节点的值: endlcout head-data endl endl;返回头;/计算双向链表的长度整数长度(dnode *head)int n=0;dnode * p;p=水头。而(p!=空(n;p=p-下一个;返回n;/打印双向链表并计算链表的长度int print(dnode *head)int n=0;dnode * p;p=水头。而(p!=空(n;cout p-数据恩德尔p=p-下一个;长度= n端;返回n;/实现双向链表中节点的删除dnode *de

3、l(dnode *head)dnode * p;整数p=新的dnodep=水头。/输入要删除的节点上的值请输入删除值: endlCIN纳姆;while (num!=p-数据p-下一个!=空(p=p-下一个;if (num=p-data)if (p=head)head=head-next;前置头=空;删除(p);否则,如果(p-next=空(p-下一个前=空;删除(p);其他p-pre-next=p-next;p-next-pre=p-pre;其他cout 找不到数字: endl返回头;/双向链表中插入节点dnode *insert(dnode *head)dnode *p0,* p;整数p=水

4、头。p0=新的dnode请输入插入值:结束;CIN纳姆;P0-数据=数量;while (p0-data p-datap-next!=空(p=p-下一个;if (p0-data=p-data)if (p=head)head=p0p0-pre=空;P0-下一个=p。p-pre=P0;其他p-下一步前=P0P0-pre=p-pre。P0-下一个=p。p-pre=P0;/* p-下一个=P0P0-pre=p。P0-下一个=p-下一个;p-下一个-前置=P0*/其他p-下一个=P0P0-pre=p。P0-下一个=空;返回头;/对双向链表进行排序dnode *排序(dnode *head)dnode *

5、p;int t,n;p=水头。n=长度(p);for(int I=0;I n-1;I)p=水头。for(int j=0;j n-1-I;j)如果(p-数据p-下一个数据(t=p-数据;p-数据=p-下一个数据;p-下一个数据=t .p=p-下一个;返回头;int main()dnode * headhead=creat();cout 创建的双向链表为: endl打印(打印头);cout head= head endl endlhead=del(head);cout 删除节点之后的双向链表为: endl打印(打印头);头部=插入(头部);cout 插入节点之后的双向链表为: endl打印(打印头);head=sort(head);cout 排序之后的双向链表为: endl打印(打印头);/*备注:在进行链表插入时要注意,链表中的值,、从头节点向后默认是增加的,所以插入的节点位于两个节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论