欢迎来到天天文库
浏览记录
ID:23700008
大小:970.50 KB
页数:22页
时间:2018-11-10
《数据结构课程设计--循环单链表》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
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
此文档下载收益归作者所有