双向链表的基本操作和应用

双向链表的基本操作和应用

ID:9947111

大小:38.00 KB

页数:5页

时间:2018-05-16

双向链表的基本操作和应用_第1页
双向链表的基本操作和应用_第2页
双向链表的基本操作和应用_第3页
双向链表的基本操作和应用_第4页
双向链表的基本操作和应用_第5页
资源描述:

《双向链表的基本操作和应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二双向链表的基本操作和应用一、实验目的:1.掌握双向线性表的逻辑特征2.熟练掌握带头结点的双向链式表的指针操作、能完成双向链表的插入、删除、获取指定位序结点指针、遍历、和复杂应用;二、实验内容(双向链式线性表)1.熟悉VisualStudio6.0,会设置断点,会查看运行过程中的指针情况;2.编写双向链表的插入、删除、获取指定位序的结点、遍历函数;3.实现将a1,a2,a3…an的双向链表转变为:a1,a3…a4,a2;三、实验结果#includetypedefstructDulNode{intda

2、ta;structDulNode*Prior,*Next;}DulNode,*LinkDulNode;intInsertDulNode(LinkDulNodehead,intlocation,intdata){LinkDulNodep=head;for(inti=0;iNext==head)break;elsep=p->Next;}if(location<0&&i!=location)return-1;LinkDulNodes=newDulNode;s->data=data;s-

3、>Next=p->Next;s->Prior=p;p->Next->Prior=s;p->Next=s;++head->data;}voidPrintDulNode(LinkDulNodehead){LinkDulNodep;p=head->Next;while(p!=head){printf("%d",p->data);p=p->Next;}}LinkDulNodeGetDulNode(LinkDulNodehead,inti){LinkDulNodep;for(intj=0;j<=i;j++){p=head->Nex

4、t;head=p;}returnp;}voidDeleteDulNode(LinkDulNodehead,intdata){LinkDulNodep;p=head->Next;for(inti=0;iNext;p->Prior->Next=p->Next;p->Next->Prior=p->Prior;--head->data;}voidChange(LinkDulNodeh1,LinkDulNodeh2){inti=0;LinkDulNodep,q;p=h1->Next;while(p!=

5、h1){q=GetDulNode(h1,i);InsertDulNode(h2,i,q->data);DeleteDulNode(h1,i);p=p->Next;i++;}intj=h1->data-1;p=h1->Prior;while(p!=h1){q=GetDulNode(h1,j);InsertDulNode(h2,i,q->data);DeleteDulNode(h1,j);i++;j--;p=p->Prior;}}voidmain(){LinkDulNodeh1;h1=newDulNode;h1->data=

6、0;h1->Next=h1;h1->Prior=h1;InsertDulNode(h1,0,9);InsertDulNode(h1,0,8);InsertDulNode(h1,0,7);InsertDulNode(h1,0,6);InsertDulNode(h1,0,5);InsertDulNode(h1,0,4);InsertDulNode(h1,0,3);InsertDulNode(h1,0,2);InsertDulNode(h1,0,1);PrintDulNode(h1);printf("");LinkDulN

7、odeh2;h2=newDulNode;h2->data=0;h2->Next=h2;h2->Prior=h2;Change(h1,h2);PrintDulNode(h2);printf("");}}四、实验中遇到的问题及解决方法1.遇到的问题:用函数求的表长度过于繁琐,是否可在双向循环链表中储存链表长度信息。解决方法:方法1.定义表结构定义时多定义intlength类型,这使得所有的节点中的p->length均为表长度,造成资源浪费;方法2.在头节点L->date中储存链表长度,在插入函数中加入++L->date操

8、作,删除函数中加入--L->date操作。2.遇到的问题:编写程序过程中忽略大小写。解决方:输写时仔细些,完成后认真检查。五、心得体会在这次实验中已就遇到了一些上次实验中所遇到的问题,但在解决过程中明显比上一次有了进步。编写程序的困难在老师演示指导后得以解决。对断点设置,正确设置断点有了进一步了解。希望在以后的实验、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。