数据结构(实验报告)实验一

数据结构(实验报告)实验一

ID:22677059

大小:120.79 KB

页数:8页

时间:2018-10-30

数据结构(实验报告)实验一_第1页
数据结构(实验报告)实验一_第2页
数据结构(实验报告)实验一_第3页
数据结构(实验报告)实验一_第4页
数据结构(实验报告)实验一_第5页
资源描述:

《数据结构(实验报告)实验一》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《数据结构》广类猞板告J专业:计算机科学与技术指导教师:班级学号:实验1、题目:设计一个循环单链表,并设计一个主函数进行测试。2、问题描述:设计循环单链表,使它包含5个基本操作及一个输出函数,并设计主函数进行测试。3、基本要求:(1)循环单链表的操作,包括初始化,求数据元素个数,插入、删除、取数据元素。(2)设计一个输出函数,将数据元素依次输出。(3)设计一个主函数实际运行验证所设计循环单链表的正确性。4、测试数据:向循环单链表中插入14(1-14)个数据元素,调用输出函数依次输出循环单链表中的数据元素,删除循环单链表中

2、第6个元素,依次输出循环单链表中的数据元素,最后撤销循环单链表。5、算法思想:初始化:初始化操作前,头指针参数head没有具体的地址值,在初始化操作后,头指针参数head才得到了具体的地址值,而这个地址值要返回给调用函数,所以,此时头指针参数head要设计成指针类型的指针。求当前数据元素个数:循环前,指针变量p指向头结点,计数变量size等于0;循环的结束条件为p-〉next!=head,循环中头指针p每次指向它的后继点时size加1;循环结束后返回数值size。插入数据元素:使指针p指向第i_l个结点,动态申请一个结点

3、存储空间并由指针q指示,把数据元素x的值赋予新结点的数据元素域,最后修改新结点的next域指向i个结点,并修改i_l结点的指针域使之指向新结点P;循环条件由条件逻辑与组成,其中子条件p-〉next!=head保证指针所指向结点存在,子条件j〈i-l保证最终让指针P指向第i-1个结点。删除数据元素:使指针p指向第i-1个结点,然后让指针s指向i结点,并把数据元素的值赋予X,最后把第i个结点脱链,并动态释放结点的存储空间;循环条件有三个子条件逻辑与组成,其中子条件p->next!=head保证第i-1个结点存在,子条件p-〉

4、next—〉!=head保证第i个结点存在,子条件j

5、^include〈stdlib.h>#includetypedefintDataType;typedefstructNode{DataTypedata;structNode*next;}SLNode;voidListlnitiate(SLNode林head)/*初始化*/{/*如果有内存空间,申请头结点空间并使头指针head指向头结点*/if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=*he

6、ad;/*置链尾标记NULL*/intListLength(SLNode*head){/*p指向首元结点*//*size初始为0*//*循环计数*/SLNode*p=head;intsize=0;while(p->next!=head){p=p->next;size++;}returnsize;intListlnsert(SLNode*head,inti,DataTypex)/*在带头结点的单链表head的数据元素ai(0彡i彡size)结点前*//*插入一个存放数据元素x的结点*/{SLNode*p,*q;intj;p

7、=head;/*p指向首元结点*/j=-1;/*j初始为-I*/while(p->next!=head&&jnext;j++;if(j!=i-1)printf(n插入位置参数错!”);return0;/*生成新结点由指针q指不*/if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);q-〉data=x;q->next=p->next;/*给才旨专fq->next赋值木/p->next=q;/*给指针p-〉

8、next重新赋值*/return1;intListDelete(SLNode*head,inti,DataType*x)/*删除带头结点的单链表head的数据元素ai(0isize-1)结点*//*删除结点的数据元素域值由x带回。删除成功时返回1;失败返回0*/{SLNode*p,*s;intj;p二head;/*p

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

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

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