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

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

ID:6333608

大小:232.50 KB

页数:15页

时间:2018-01-10

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

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

1、数据结构课程设计设计题目:单链表小组成员姓名:专业班级:计算机应用<3>班指导教师:安徽新华学院信息工程学院日期:2010年12月23日课题名称单链表院系信息工程学院年级专业计应<3>班成员姓名成员学号承担的任务成绩单链表的建立、插入,整理单链表单链表的输出、查找,整理单链表单链表的前驱、后继,整理单链表单链表的删除、撤销,整理单链表单链表的逆置,整理单链表课题设计目的与设计意义1、课题设计目的:1>、掌握单链表的结构特点及有关概念;2>、掌握单链表的建立、插入、删除、查找、输出、撤销、逆置、求前驱和后继等基本操作的算法实现。

2、2、课题设计意义:指导教师:李春梅2010年12月23日安徽新华学院课程设计成绩评定表目录一、实验目的21、22、2二、实验内容3三、实验基本要求(软、硬件)3四、算法设计思想31、32、33、44、45、46、47、48、4五、算法流程图4六、算法源代码5七、运行结果161、162、163、174、185、186、197、198、199、20八、收获及体会20一、实验目的1、理解并掌握单链表的结构特点和相关概念;2、学会单链表的基本操作:建立、插入、删除、查找、输入、撤销、逆置、求前驱和后继等并实现其算法。二、实验内容利用头

3、插建立一个带头结点的单链表,并用算法实现该单链表的插入、删除查找、输出、求前驱和后继、再把此单链表逆置,然后在屏幕上显示每次操作的结果当所有操作完成后能撤销该单链表。三、实验基本要求(软、硬件)用VC++6.0软件平台,操作系统:WindowsXP硬件:内存要求:内存大小在256MB,其他配置一般就行。四、算法设计思想1、定义一个创建链表的函数,通过该函数可以创建一个链表,并为下面的函数应用做好准备。2、定义输出链表的算法,通过对第一步已经定义好的创建链表函数的调用,在这一步通过调用输出链表的函数算法来实现对链表的输出操作。3

4、、定义一个遍历查找的算法,通过此算法可以查找到链表中的每一个节点是否存在。4、定义查找链表的每一个前驱和后继,通过定义这个算法,可以很容易的实现对链表的前驱和后继的查找工作。5、定义插入节点的算法,通过定义这个算法,并结合这查找前驱和后继的算法便可以在连链表的任意位置进行插入一个新节点。6、定义删除节点的操作,这个算法用于对链表中某个多余节点的删除工作。7、定义一个逆置单链表的操作,通过定义这个算法,可以逆置输出单链表。8、定义一个撤销链表的算法,这个算法用于删除单链表中的所有节点,使链表为空。五、算法流程图六、算法源代码#i

5、nclude#includetypedefstructnode{intdata;structnode*next;}linklist;voidsetnull(linklist*H)//清空单链表{H->next=NULL;}voidLeng(linklist*H)//求单链表长度{linklist*p;intk;p=H;k=0;while(p->next!=NULL){p=p->next;k++;}printf("Thelinklistis:%d",k);}intGetElem(link

6、list*H,inti)//取单链表中的某个元素{linklist*p;intk;p=H;k=0;while(p->next!=NULL&&knext;k++;}if(k==i&&p!=NULL)printf("ipositiondatais%d",p->data);elseprintf("Nofind!");}voidInsert(linklist*H,inti,intx)//向单链表中插入某个元素{linklist*p;intk;linklist*s;p=H;k=0;while(p->next!=

7、NULL&&knext;k++;}if(k==i-1&&p->next!=NULL){s=(linklist*)malloc(sizeof(linklist));s->data=x;s->next=p->next;p->next=s;}elseprintf("error");}voidDelete(linklist*H,intx)//删除元素{linklist*p,*q;intk;p=H;k=0;while(p->next!=NULL&&p->next->data!=x){p=p->next;k++;

8、}if(p->next->data==x){q=p->next;p->next=q->next;free(q);}elseprintf("nofind!");}voidprint(linklist*H)//输出单链表{linklist*p;intk;p=H;k=0;if(

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

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

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