- 13
- 0
- 约3.13千字
- 约 10页
- 2019-03-11 发布于江苏
- 举报
课程设计报告
课程设计题目:实现两个链表的合并
学生姓名黎微微
专 业 计算机信息管理
班 级1141301
指导教师 吴志强
2013年 01月 08 日
课程设计目的:
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。
课程设计题目:
实现两个链表的合并
要求:1)输入2个单链表
2)输出2个单链表合并后形成的结果。
三、模块划分:
(1)数据模块
参考使用课本上的具有头结点的链表抽象数据类型linklist,该抽象数据类型中包含一个elemtype类型的数据和一个指针,在开始用时,elemtype定义为整型变量,指针用来指向下一个元素。对应的使用链表抽象数据类型linklist基本操作的函数有:初始化操作函数void ini(linklist *s)。
(2)创建链表模块
void create(linklist *s)
其功能是创建链表录入数据。
(3)输出数据模块
void display(linklist *s)
其功能为是输出s链表中的各项元素,从而验证操作是否成功
(4)排序模块
void sort(linklist *s)
此函数功能是s链表使用冒泡法对链表进行排序
(5)合并链表模块
void add(linklist *s1,linklist *s2)
其功能是按照题目要求实现两个链表的合并,将s2链表插入到s1链表中。
(6)主函数模块
void main(),函数中调用了各个模块的函数,从而实现了题目合并排序的要求
四、流程图:
Creat s1链表
对s1进行排序
对s1进行排序
Creat
Creat s2链表
对s2进行排序
对s2进行排序
对排序后的s1.s2链表合并
S1为null s1!=null
将s2插入s1中S1=s2
将s2插入s1中
S1=s2
显示s1(即合并后的链表)
结束
结束
五、算法设计分析
这个两个链表的交叉合并算法主要运用到的是链表的基本操作,定义节点,将链表的创建、链表的插入、链表内容升序排列,通过主函数调用。这样就大大精简了主函数的操作。但主函数中很大篇幅用到了if、else语句,用以指定链表指定结点,这样就使得本来很精简变得繁琐,降低了程序的质量。所以其有优点和缺点,但需要不断的改进,不断优化该程序。
六、数据结构:
(1)数据类型DataType定义如下:
typedef int elemtype;
(2)带头结点链表抽象数据类型的结点结构定义如下:
typedef struct node
{
elemtype data;
struct node *next;
}linklist;
七、源程序:
#define null 0
typedef int elemtype;
typedef struct node
{
elemtype data;
struct node *next;
}
lin;
void inia(lin *a)
{
a-next=null;
}
void create(lin *a)
{ lin *p,*q=a;
elemtype e;
printf(please input the data;\n);
scanf(%d,e);
while(e!=-1)
{
p=(lin *)malloc(sizeof(lin));
p-data=e;
q-next=p;
q=q-next;
scanf(%d,e);
}
q-next=null;
}
void display(lin *a)
{
lin *p=a-next;
if(a-next==null)
printf(the lin is empty!\n);
else
{
printf(output the data:\n);
while(p!=null)
{
printf(%5d,p-data);
p=p-next;
}
}
printf(\n);
}
void sort(lin *a)
{
lin *p,*q;
elemtype t;
p=s-next;
while(p!=null)
{
q=p-next;
while(q!=null)
{
if(p-dataq-data)
您可能关注的文档
最近下载
- 项目经理面试宝典.pptx VIP
- 高速铁路CRTSⅢ型轨道板先张法预应力体系的技术解析与实践探索.docx VIP
- 云南昆明市第一中学2026届高三下学期2月复习诊断语文试题(含答案)(含解析).docx VIP
- 2026年度江苏旅游职业学院单招《数学》真题附参考答案详解【轻巧夺冠】.docx VIP
- YY 0471.4-2004 接触性创面敷料试验方法 第4部分-舒适性.pdf VIP
- 2026四川成都兴城融晟科技有限公司招聘网络运维工程师、 项目经理的2人备考题库及参考答案详解.docx VIP
- 飞腾平台PSPA1.0白皮书.pdf VIP
- 2025年度苏州工业园区国企社会招聘笔试历年参考题库附带答案详解.docx VIP
- 2026年书记员考试题库100道附完整答案【历年真题】.docx VIP
- 2025年《中华人民共和国药品管理法》培训试卷含答案.docx VIP
原创力文档

文档评论(0)