




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验名称 :实验四 双向或循环链表的基本操作一、实验项目名称:双向或循环链表的基本操作二、实验目的1)通过实验理解双向链表或循环链表的结构。 2)通过实验掌握双向链表或循环链表的基本操作。三、实验基本原理 1、数据结构 2、算法思想 1.构思:双向循环链表的创建建立在双向链表上,所以建立双向循环表每个结点都有三个属性:数据域、上个结点、下个结点,其中第一个结点的上一个结点是最后一个结点,最后一个结点的下一个结点就是第一个结点,所以就构成了双向循环链表。双链表的单元类型定义Type struct DuLNode Elemtype data; Struct DuLNode *prior;/建立表头结点Struct DuLNode *next;/建立表尾结点 DuLNode,*DuLinkList; 3、算法描述 建立一个双链表,输入元素。由p和s两个指针来存放元素。以0判断是否结束,如果不为0 ,则继续,为0则截止。 s-data=e; s-next=p-next; s-prior=p; p-next-prior=s; p-next=s; p=s; 查找元素:首先判断位置是否合法(p-data!=e& p-next!=head)若合法进行查找运算。需要引用DuLinkList,(DuLinkList &L)输入要查找的元素的位置,判断双链表中是否有该元素,如果是则输出该元素,如果没有,则提示没有该元素。插入元素:判断位置是否合法(iL.Length),若合法进行查插入运算。需要引用DuLinkList,(DuLinkList &L)输入要插入的元素及其位置,插入数据然后输出数据。删除元素:判断位置是否合法(iL.Length),若合法进行查删除运算。输入要插入的元素及其位置,删除该数据。本程序实现双链表的创建、查找、插入、删除、显示、菜单为主的六个函数组成。四、主要仪器设备及耗材 电脑运行环境:visual C+6.05、 实验步骤(1) 打开visual C+,新建工程console application工程,新建文件C+ source file。(2) 输入自己的程序代码(3) 如果有报错则修改程序。无则组建调试六、实验数据及处理结果 1、程序清单#include#include#include#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1#define ERROR 0#define OVERFLOW -2typedef struct DuLnodeint data; Struct DuLNode *prior;/建立表头结点 Struct DuLNode *next;/建立表尾结点int L;DuLinkList;DuLinkList *ahead;int DuLinkListCreate(DuLinkList &L) DuLinkList *p,*s; int x; ahead=(DuLinkList*)malloc(sizeof(DuLinkList); ahead-data=-1; ahead-next=ahead; ahead-prior=ahead; p=ahead; L.Length=0; printf(请输入元素,输入0结束n); scanf(%d,&x); while(x!=0) s=(DuLinkList*)malloc(sizeof(DuLinkList); s-data=x; s-next=p-next; s-prior=p; p-next-prior=s; p-next=s; p=s; scanf(%d,&x); L.Length+; return OK;void DuLinkListDisplay(DuLinkList &L)DuLinkList * p=ahead-next;while(p!=ahead)printf(%d ,p-data);p=p-next;printf(n);int DuLinkListLocate(DuLinkList &L,int e) /查找元素 DuLinkList * p=ahead-next; int i=1;if(p=NULL) return ERROR; while(p-data!=e& p-next!=ahead) p=p-next; i+; if(p-data=e) printf(查找的位置是:%d n,i); else printf(并没有这个元素n); return OK;int DuLinkListInsert(DuLinkList &L,int i,int e) /插入元素 int j;j=0;DuLinkList *p=ahead-next,*s;while(p-next!=ahead)&(jnext;j+;if(i0)&(j=i-1) s=(DuLinkList*)malloc(sizeof(DuLinkList);s-data=e;s-prior=p-prior;p-prior-next=s;s-next=p;p-prior=s; DuLinkListDisplay(L);return OK;int DuinkListDelet(DuLinkList &L,int i) /删除元素 int e,j=0; DuLinkList *p=head-next;while(p-next!=ahead)&(jnext;j+; if(i0)&(j=i)e=p-data;p-prior-next=p-next;p-next-prior=p-prior;free(p);Display_Dul(L);return OK;int scan() int a; do printf(1. 输入元素 n); printf(2. 查找 n); printf(3. 插入n); printf(4. 删除n); printf(5. 显示数据n); printf(6. 退出程序n); printf(输入你想要的操作:); scanf(%d,&a); while(a6); return (a);int main() DuLinkList L;for(;) / 无限循环 switch(scan() int e,i; case 1:DuLinkListCreate(L); break; case 2:printf(请输入你想要查找的元素:); scanf(%d,&e); DuLinklistLocate(L,e); break; case 3:printf(请输入要插入的数的位置:); scanf(%d,&i); if(iL.L) printf(输入不合法); break; printf(请输入你要插入的元素:); scanf(%d,&e); DuLinkListInsert(L,i,e); break; case 4:printf(请输入你要删除的位置:); scanf(%d,&i); if(iL.L) printf(输入不合法n); break; DuLinkListDelet(L,i); break; case 5:DuLinkListDisplay(L); break; retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合租房屋合同汇编15篇
- 2025年甘肃省临夏州临夏德雅高级中学春季教师招聘19人模拟试卷及答案详解(网校专用)
- 2025年杭州市上城区望江街道社区卫生服务中心招聘编外1人模拟试卷及答案详解(名校卷)
- 2025年福建农林大学教学科研人员招聘206人模拟试卷及一套参考答案详解
- 婚宴父亲答谢致辞(集合15篇)
- 2025年度湖北省纪委监委考试录用公务员专业测试模拟试卷及1套完整答案详解
- 2025年楚雄技师学院云南现代职业技术学院高层次人才和急需紧缺招聘考前自测高频考点模拟试题及答案详解(必刷)
- 2025年绿色建筑认证体系在绿色建筑绿色建筑行业规范中的应用与发展报告
- 2025年纺织服装制造业智能化生产中的数字孪生技术应用报告
- 2025年城市公共卫生设施建设项目环境风险评估报告
- 八年级语文写作技巧与课堂教案
- 鼻出血的课件护理
- 2025年干细胞治疗行业研究报告及未来行业发展趋势预测
- (2025年标准)清理乱账服务协议书
- 2025年五粮液笔试考试题及答案
- 2025年4月自考00155中级财务会计试题及答案含评分标准
- 道路工程培训课件
- DGTJ08-2004B-2020 建筑太阳能光伏发电应用技术标准
- 国庆假期大学生安全教育
- 呼吸内科出科汇报
- JJF 2267-2025场磨式大气电场仪校准规范
评论
0/150
提交评论