数据结构链表结构的相关函数库的设计

数据结构链表结构的相关函数库的设计

ID:47510121

大小:181.00 KB

页数:19页

时间:2020-01-12

数据结构链表结构的相关函数库的设计_第1页
数据结构链表结构的相关函数库的设计_第2页
数据结构链表结构的相关函数库的设计_第3页
数据结构链表结构的相关函数库的设计_第4页
数据结构链表结构的相关函数库的设计_第5页
资源描述:

《数据结构链表结构的相关函数库的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.学号2014-2015学年第一学期1208210146《数据结构》课程设计报告题目:链表结构的相关函数库的设计专业:计算机科学与技术班级:12级计科(3)班姓名:指导教师:成绩:计算机与信息工程系2014年12月15日word资料.目录1问题分析和任务定义11.1任务定义11.2面临的问题,进行分析解决,模块之间的联系。12概要设计和数据结构的选择22.1数据结构的选择22.2结构图22.3函数实现的具体算法举例33课程设计思路63.1设计函数库64测试结果及其分析74.1初始化74.2逆序输入元素84.

2、3单链表的长度84.4遍历输出单链表84.5检索查找94.6输入插入元素的值和位置94.7删除元素105小结10参考文献10附录:程序源代码11word资料.word资料.1问题分析和任务定义1.1任务定义设计出链表结构的相关函数库,以便在程序设计中调用。进行链表中元素的输入、查找、插入、删除等操作的课程设计。要求:(1)所设计的数据结构应尽可能节省存储空间。(2)程序的运行时间应尽可能少。从题目看出所设计的程序应能达到的功能,设计好的程序要满足以上两点。在数据输入方面可以根据链表的特点即存储空间的连续,从

3、创建链表到插入,删除,查找元素以及输出一系列的步骤,连贯而下。算法的实现依赖于所采用的存储结构,所以选择什么样的存储方式在课程设计中尤为重要,这也是本程序好坏的一个评定。1.2面临的问题,进行分析解决,模块之间的联系。(1)在内存中开辟一块连续的内存空间,进行分析解决(2)利用物理位置的相邻来表示变量,达到预期效果,很好的完成任务。查找元素以及输出一系列的步骤,连贯而下。(3)使用链表的数据结构来满足尽可能节省存储空间的要求,达到要求,从创建链表到插入,删除,查找元素以及输出一系列的步骤,连贯而下。(4)输

4、出界面设计与各个模块的联系,设计出链表结构的相关函数库,以便在程序设计中调用,进行链表中元素的分析。word资料.2概要设计和数据结构的选择2.1数据结构的选择本程序选择的数据结构是线性表中的链式结构(单链表),原因如下:单链表的定义:(1)单链表是线性表的链接存储表示。其各个数据元素可以相继存储,也可以不相继存储,不过它为每个数据元素附加了一个链接指针,并形成的一个结点。(2)单链表的每一个结点分为两个部分:data和link。(3)链表的第一个结点的地址可以通过链表的头指针first找到,其他结点的地址

5、则在前趋结点的link域中,链表的最后一个结点没有后继,在结点的link域中放一个空指针NULL。(4)头指针first为空的单链表为空表,该链表一个结点也没有,相对地,头指针first不为空且首元结点存在的单链表为非空表,表中至少有一个结点。2.2结构图创建单链表输入数据插入数据删除数据查找数据输出数据计算表长图1结构图word资料.2.3函数实现的具体算法举例(1)插入函数/*在带头结点的单链线性表L中第i个位置之前插入元素e*/intInsert_List(LinkListL,inti,ElemTyp

6、ee){intj=0;LinkListp=L,s;while(p&&jnext;j++;}if(!p

7、

8、j>i-1)returnERROR;s=(LinkList)malloc(sizeof(structLNode));s->data=e;s->next=p->next;p->next=s;returnOK;}(2)删除函数intDelete_List(LinkListL,inti,ElemType*e)/*在带头结点的单链线性表L中,删除第i个元素,并由e返回其值*/{intj=0;

9、LinkListp=L,q;while(p->next&&jnext;j++;}if(!p->next

10、

11、j>i-1)return0;q=p->next;p->next=q->next;*e=q->data;free(q);return1;}(3)查找元素/*当按位置查找元素,第i个元素存在时,其值赋给e并返回1,否则返回0*/intGetElem_List(LinkListL,inti,ElemType*e){intj=0;LinkListp=L;while(p&&j<

12、i){p=p->next;j++;}if(!p

13、

14、j>i){printf("链表不存在或参数i错");return0;}*e=p->data;/*取第i个元素*/return1;word资料.}(5)显示单链表intDisp_List(LinkListL)/*显示单链表*/{LinkListp=L->next;if(p==Null)printf("单链表为空表");else{printf("输出单链表:");

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

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

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