2022年单链表程序设计 .pdf

上传人:C****o 文档编号:33679340 上传时间:2022-08-12 格式:PDF 页数:13 大小:184.07KB
返回 下载 相关 举报
2022年单链表程序设计 .pdf_第1页
第1页 / 共13页
2022年单链表程序设计 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年单链表程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年单链表程序设计 .pdf(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、- 1 - 课程设计 (论文)题 目 名 称单链表的基本操作课 程 名 称C 语言程序设计学 生 姓 名陈瑶学号1041303005 系 、专业信息工程系、通信工程指 导 教 师成 娅 辉2011年 06 月 29 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - - 2 - 目 录1 前言. 错误!未定义书签。2 需求分析 . 错误!未定义书签。2.1 课程设计目的 . 错误!未定义书签。2.2 课程设计任务 . 错误!未定

2、义书签。2.3 设计环境 . 错误!未定义书签。2.4 开发语言 . 错误!未定义书签。3 分析和设计 . - 4 - 3.1 模块设计 . - 4 - 3.3 主要模块的流程图 . 错误!未定义书签。4 具体代码实现 . 错误!未定义书签。5 课程设计总结 . 错误!未定义书签。5.1 程序运行结果 . 错误!未定义书签。5.2 课程设计体会 . 错误!未定义书签。参考文献 . 错误!未定义书签。致谢. 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共

3、13 页 - - - - - - - - - - 3 - 1 前言编写一个 C语言程序,实现单链表的基本操作。通过一个main 函数,并运用结构体和指针,建立四个子函数,分别用来实现单链表的建立、输出、插入、删除操作。输入一组数据以-1 为结束标志,然后运行并在屏幕上显示结果。2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。 通过课程设计, 提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计打基础。2.2 课程设计任务与要求输入一组正整数,以 -1 标志结束,用函数实现: (1)将

4、这些正整数作为链表结点的 data 域建立一个非递减有序的单链表,并输出该单链表;(2)往该链表中插入一个正整数,使其仍保持非递减有序,输出插入操作后的单链表;(3)删除链表中第 i 个结点,输出删除操作后的单链表,i 从键盘输入。(1)用C语言实现程序设计;(2)利用结构体、指针进行相关信息处理;(3)画出主要模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交) ,程序要有注释。2.3 设计环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4 开发工具C语言名师资料总结 - - -精品资料欢迎下载 - - - - - - -

5、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - - 4 - 3 分析和设计3.1 模块设计(1)在程序的开头部分定义了结构体类型: typedef struct node int data; struct node *next; NODE; 用来存放数据信息,从而定义链表结点类型。( 2 ) 接 着 通 过 定 义 一 个create_llist_sorted()函 数 建 立 单 链 表 , 定 义output(NODE *h) ” , “ insert(NODE *h, int x) ”

6、, “ delete(NODE *h, int i) ”等一系列的函数,实现链表的输出、插入、删除等操作,通过mian()函数来调用各个子函数,最终得到结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - - 5 - 3.2 系统流程图图 3.1 系统流程图开始调用建立函数create_llist_sorted( ) 调用输出函数output(NODE *h) 调 用 插 入 函 数insert(NODE *h, int x)

7、 调 用 删 除 函 数delete(NODE *h, int i) 调用输出函数output(NODE *h) 调用输出函数output(NODE *h) 结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - - 6 - 3.3 主要模块的流程图图 3.2.1 建立函数流程图return h; N Y Int x;NODE *h,*p,*q,*s; x!=-1 s=(NODE*)mallloc(sizeof(NODE); s-

8、data=x; s-next=NULL; q=h,p=h-next; s-datap-data &p!=NULL ; p=p-next,q=q-next; Y N q-next=s;s-next=p;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - - 7 - 图 3.2.2 输出函数流程图p0-datap-dataNODE*p p=h p!=NULL printf( “ %8d” ,p-data) p=p-next N Y ;

9、 p=p-next,q=q-next p0-next=p;q-next=p0; return h; &p!=NULL NODE*p,*q,*p0 q=h,p=h-nextN Y 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - - 8 - 图 3.2.3 插入函数流程图图 3.2.4 删除函数流程图n=i-1 p-next=p-next-next; return hNODE*q,*p;int n=1,i;nnext;p=p-ne

10、xt;n+; Y N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - - 9 - 4 具体代码实现源程序代码:#include stdio.h #include math.h #include string.h #include stdlib.h typedef struct node int data; struct node *next; NODE; /* 链表结点类型定义 */ /*函数声明 */ NODE *creat

11、e_llist_sorted(); /*建立一个非递减有序的带头结点的单链表,返回其头指针*/ void output(NODE *h); /* 输出头指针 h 所指单链表 */ NODE *insert(NODE *h, int x); /* 将元素 x 插入到单链表 h 中仍有序 */ NODE *del(NODE *h, int i); /* 删除单链表 h 中第 i 个结点 */ /*主函数 */ void main() NODE *head;int x,i; head=create_llist_sorted(); output(head); printf(nplease input

12、inserted data:); scanf(%d,&x); insert(head,x); output(head); printf(nplease input deleted location:); scanf(%d,&i); del(head,i); output(head); /*子函数 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - - 10 - NODE *create_llist_sorted() /*建立

13、一个非递减有序的带头结点的单链表,返回其头指针*/ int x;NODE *h,*p,*q,*s; /*p指向单链表中某一结点,q 指向*p 的前驱 */ h=(NODE * )malloc(sizeof(NODE);h-next=NULL; scanf(%d,&x); while(x!=-1) s=( NODE * )malloc(sizeof(NODE); /*生成一个结点,用指针S指向*/ s-data=x; s-next=NULL; for(q=h,p=h-next; p!=NULL&s-datap-data;p=p-next,q=q-next); /*不断比较,找到插入位置 */ q

14、-next=s;s-next=p; scanf(%d,&x); return h; void output(NODE *h) /* 输出头指针 h 所指单链表 */ NODE *p; for(p=h;p!=NULL;p=p-next) printf(%8d,p-data); NODE *insert(NODE *h, int x) /* 将元素 x 插入到单链表 h 中仍有序 */ NODE *p,*q,*p0; q=h;p=h-next; scanf(%d,&x); p0=(NODE*)malloc(sizeof(NODE); p0-data=x;p0-next=NULL; for(;p0-

15、datap-data&p!=NULL;p=p-next,q=q-next); p0-next=p;q-next=p0; return h; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - - 11 - NODE *del(NODE *h, int i) /* 删除单链表 h 中第 i 个结点 */ NODE *q,*p;int n=0; q=h;p=h-next; scanf(%d,&i); while(nnext;p=p-

16、next;n+; if(n=i-1) p-next=p-next-next; return h; 5 课程设计总结5.1 程序运行结果5.2 课程设计体会名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - - 12 - 本次 C语言课程设计我是按照任务书上的要求来完成的,虽然还存在比较多的瑕疵,但我是用我饱满的热情、 认真的态度去对待本次课程设计的。本次课程设计,我设计的是一实现单链表的基本操作的程序,本程序主要是要运用结构体及

17、指针和函数来实现的。 这次课程设计主要是要让我们更好的结合和运用所学知识完成。若完全靠自己掌握的知识来独立完成,还是有一定的困难, 在我的指导老师成娅辉老师的耐心指导下,我才能顺利的完成我的课程设计。参考文献1张福祥 . C语言程序设计M. 辽宁大学出版社,2008.1 2 张福祥,王萌C语言程序设计习题解答与实验实沈阳:辽宁大学出版社,20083 牛莉,刘远军等计算机等级考试辅导教程M 北京:中国铁道出版社,2008致谢这次 C语言课程设计让我收获不少, 虽然这次我这组的课程设计题目不是很难,但要做好也不简单。 在成娅辉老师的指导和组员的合作下,我得以顺利地完成本次课程设计,并努力使设计更加

18、完美。在此,我要感谢指导老师以及组员,感谢他们对我的帮助。 与组员合作使我认识到团队精神的重要性。再一次感谢所有帮助我完成这次课程设计的人。谢谢!本次 C语言课程设计是在我的指导老师成老师的精心指导和大力支持下完成的。成老师严谨求实的治学态度, 高度的敬业精神,兢兢业业,孜孜不倦的工作作风和大胆创新的进取精神对我产生重要影响。成老师渊博的知识, 开阔的视野和敏锐的思维给了我深深的启迪。在设计的过程中我发现了自己许多不足之处,成老师给我提出了许多宝贵的意见和建议,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

19、 - - - - - 第 12 页,共 13 页 - - - - - - - - - - 13 - 使我顺利的完成了课程设计。 同时,在此次课程设计过程中我也学到了许多关于计算机应用方面的知识,试验技能有了很大的提高。另外,我还要特别感谢同学们对我课程设计的指导,他们为我完成课程设计提供了巨大的帮助。最后,再次对关心,帮助我的老师和同学表示衷心地感谢!在课程设计即将完成之际, 我的心情无法平静, 从开始进入课程设计到课程设计的顺利完成, 有许多可敬的师长同学给了我无言的帮助。在这里再次接受我诚挚的感谢。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com