数据结构课程设计--循环单链表

数据结构课程设计--循环单链表

ID:23700008

大小:970.50 KB

页数:22页

时间:2018-11-10

数据结构课程设计--循环单链表_第1页
数据结构课程设计--循环单链表_第2页
数据结构课程设计--循环单链表_第3页
数据结构课程设计--循环单链表_第4页
数据结构课程设计--循环单链表_第5页
资源描述:

《数据结构课程设计--循环单链表》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、信息科学与技术学院《数据结构》课程设计报告题目名称:循环单链表(附加头结点,引用)专业班级:计算机科学与技术2011级1班学生姓名:张峻学生学号:2011508004指导教师:高攀目录1课程设计的目的11.1课程设计的目的11.2课程设计的题目11.3题目要求12概要设计12.1存储结构12.2基本操作13详细设计23.1流程图23.2源程序74测试125课程设计总结196参考书目:201课程设计的目的1.1课程设计的目的更好的掌握数据结构这门课程,会用数据结构的基本思想及算法解决实际问题。更好的掌

2、握循环链表,能进行各种基本的操作,提高编程能力。1.2课程设计的题目循环单链表(附加头结点,引用)1.3题目要求实现附加头结点循环单链表的基本操作:创建空表、输出、求表长、取元素、查找、替换、插入、删除、清空。2概要设计2.1存储结构存储结构Ldatanextdatanextdatanextdatanext—→空闲—→—→—→…—→typedefstructnode{datatypedata;/*数据域*/structnode*next;/*指针域*/}LNode,*LinkList;/*结点及结点

3、的地址*/2.2基本操作创建空表、输出、求表长、取元素、查找、替换、插入、删除、清空。203详细设计3.1流程图各个算法的设计如下:1.主函数:开始结束调用菜单Menu()利用头插法将数组中数据插入打链表创建空循环链表2.主菜单用于进行指示进行各种操作,是与每个函数都相联系的一个函数结束开始输入xz菜单退出清空删除插入替换查找求表长显示数据取元素203.显示链表先让指针指向首元结点,在判断该指针是否为头指针,不是则输入数据,实则退出开始p=head->next;p=head->next;否while

4、(p!=head)是cout<data;p=p->next;结束图34.求表长先求表的初始长,在判断链表是否为空,不是则len自加,否则结束p=head;inti,len=ListLen(head)判断链表是否为空结束++len;p=p->next;开始是否205.取元素是否先求表长,在判断Index<1

5、

6、Index>len,为否则循环,一直活得该数据开始p=headIndex<1

7、

8、Index>lenfor(i=0;inext);获取该数据结束6.查找开始

9、是否否是是求表长,在判断链表是否为空,是则结束,否则判断要查找的数据是否在链表中,是则成功结束p=p->nextif(p->next->data==data)判断链表是否为空p=head;inti,len=ListLen(head)207.替换判断要替换的位置是否在链表范围中,是则循环找到要替换的数据替换,否则结束是否开始p=head;inti,len=ListLen(head)Index<1

10、

11、Index>lenfor(i=0;inext);p->data=data

12、结束208.插入判断将要插入的位置是否在链表范围内,是则循环将要插入的数据插入,否则结束是否开始p=head;inti,len=ListLen(head)Index<1

13、

14、Index>lenfor(i=1;inext);插入数据结束9.删除判断链表是否为空,否则删除该结点,是则结束是否否是开始p=head判断链表是否为空p->next->data==data删除该结点结束2010.清空判断聊表是够为空,否则依次释放空间,否则结束是否开始p=headp->next->d

15、ata==data判断链表是否为空依次释放空间结束3.2源程序#includeusingnamespacestd;typedefintElemType;typedefstructnode{ElemTypedata;structnode*next;}LNode,*LinkList,*pNODE;//创建一个有头结点的空循环表。LinkListInitList(void){pNODEhead=newLNode;head->next=head;returnhead;}//头插法。将给定

16、结点插在链表头部。voidInsertHead(LinkListhead,pNODEanode){anode->next=head->next;head->next=anode;}20//返回链表长度。intListLen(LinkListhead){intlen=0;pNODEp=head;while(p->next!=head){++len;p=p->next;}returnlen;}//查找。成功返回1,否则返回0。intListSearch(LinkListh

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

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

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