单链表程序设计

上传人:M****1 文档编号:508642135 上传时间:2023-06-07 格式:DOCX 页数:12 大小:158.28KB
返回 下载 相关 举报
单链表程序设计_第1页
第1页 / 共12页
单链表程序设计_第2页
第2页 / 共12页
单链表程序设计_第3页
第3页 / 共12页
单链表程序设计_第4页
第4页 / 共12页
单链表程序设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单链表程序设计》由会员分享,可在线阅读,更多相关《单链表程序设计(12页珍藏版)》请在金锄头文库上搜索。

1、种舸容碗课程设计(论文)题目名称单链表的基本操作课程名 称C语言程序设计学生姓名陈瑶学号1041303005系、专 业信息工程系、通信工程指导教师成娅辉2011 年 06 月 29 日目录1 前言 2 需求分析 2.1 课程设计目的2.2 课程设计任务2.3 设计环境 2.4 开发语言 错误!未定义书签。 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签。3 分析和设计- 4 - 4 - 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。3.1 模块设计 3.3 主要

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

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

4、3 分析和设计3.1 模块设计(1)在程序的开头部分定义了结构体类型:typedef struct nodeint data;struct node *next;NODE;用来存放数据信息,从而定义链表结点类型。(2 )接着通过定义一个create_llist_sorted()函数建立单链表,定义 output(NODE *h), “ insert(NODE *h, int x), “ delete(NODE *h, int i)等一系 列的函数,实现链表的输出、插入、删除等操作,通过mian ()函数来调用各 个子函数,最终得到结果。3.2 系统流程图图 3.1 系统流程图3.3 主要模块的

5、流程图图3.2.1建立函数流程图图3.2.2输出函数流程图图 3.2.3 插入函数流程图图 3.2.4 删除函数流程图4 具体代码实现源程序代码:#include stdio.h#include math.h#include string.h#include stdlib.htypedef struct nodeint data;struct node *next;NODE; /*链表结点类型定义*/NODE *create_llist_sorted();/*建立一个非递减有序的带头结点的单链表,返回其头指针*/void output(NODE *h); /*输出头指针 h 所指单链表*/NO

6、DE *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 inserted data:); scanf(%d,&x);insert(head,x); output(head);printf(nplease input deleted location:); scanf(%d

7、,&i);del(head,i); output(head);NODE *create_llist_sorted() /*建立一个非递减有序的带头结点的单链表,返回其头指针*/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!

8、=NULL&s-datap-data;p=p-next,q=q-next); /*不断比 较,找到插入位置*/q-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(sizeo

9、f(NODE); p0-data=x;p0-next=NULL; for(;p0-datap-data&p!=NULL;p=p-next,q=q-next); p0-next=p;q-next=p0;return h;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-next;n+;if(n=i-1)p-next=p-next-next;return h;5 课程设计总结5.1 程序运行结果5.2 课程设计体会本次C语言课程设计我是按照任

10、务书上的要求来完成的,虽然还存在比较多 的瑕疵,但我是用我饱满的热情、认真的态度去对待本次课程设计的。本次课程 设计,我设计的是一实现单链表的基本操作的程序,本程序主要是要运用结构体 及指针和函数来实现的。这次课程设计主要是要让我们更好的结合和运用所学知 识完成。若完全靠自己掌握的知识来独立完成,还是有一定的困难,在我的指导 老师成娅辉老师的耐心指导下,我才能顺利的完成我的课程设计。参考文献张福祥 C语言程序设计M.辽宁大学出版社,2008.12 张福祥,王萌.C语言程序设计习题解答与实验实沈阳:辽宁大学出版社,2008.3 牛莉,刘远军等.计算机等级考试辅导教程M.北京:中国铁道出版社,20

11、08.致谢这次 C 语言课程设计让我收获不少,虽然这次我这组的课程设计题目不是很 难,但要做好也不简单。在成娅辉老师的指导和组员的合作下,我得以顺利地完 成本次课程设计,并努力使设计更加完美。在此,我要感谢指导老师以及组员, 感谢他们对我的帮助。与组员合作使我认识到团队精神的重要性。再一次感谢所 有帮助我完成这次课程设计的人。谢谢!本次C语言课程设计是在我的指导老师 成老师的精心指导和大力支持下完成的。成老师严谨求实的治学态度,高度的敬 业精神,兢兢业业,孜孜不倦的工作作风和大胆创新的进取精神对我产生重要影 响。成老师渊博的知识,开阔的视野和敏锐的思维给了我深深的启迪。在设计的 过程中我发现了自己许多不足之处,成老师给我提出了许多宝贵的意见和建议, 使我顺利的完成了课程设计。同时,在此次课程设计过程中我也学到了许多关于 计算机应用方面的知识,试验技能有了很大的提高。另外,我还要特别感谢同学们对我课程设计的指导,他们为我完成课程设计 提供了巨大的帮助。最后,再次对关心,帮助我的老师和同学表示衷心地感谢!在课程设计即将完成之际,我的心情无法平静,从开始进入课程设计到课程 设计的顺利完成,有许多可敬的师长同学给了我无言的帮助。在这里再次接受我 诚挚的感谢。

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

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号