顺序表的归并

顺序表的归并

ID:39585010

大小:49.50 KB

页数:9页

时间:2019-07-06

顺序表的归并_第1页
顺序表的归并_第2页
顺序表的归并_第3页
顺序表的归并_第4页
顺序表的归并_第5页
资源描述:

《顺序表的归并》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构与算法设计》实验报告——实验1学院:自动化学院班级:自动化2班学号:1320110130姓名:赵帅一、实验目的:理解抽象数据类型的定义;学会用c语言实现对线性循环链表的基本操作;二、实验内容采用单向环表实现约瑟夫环。三、程序设计1、概要设计:(说明程序中用到的抽象数据类型定义,宏定义,主程序的流程以及各个程序模块之间的调用关系,给出主要流程图)抽象数据类型定义:ADTList{数据对象:D={ai

2、ai∈ElemSet,i=1,2,…,n,n≥0}数据关系:R1={

3、ai-1,ai∈D,i=1,2,…,n

4、}基本操作:Creat(m)操作结果:创见一个具有m个结点的单向环表;}主程序流程:调用函数create构造链表→通过循环依次输出结点编号模块调用关系:主函数main()调用creat()函数。流程图:开始输入想要创建的单向表的结点数m,计数起点s和间隔数n  调用函数创建单向环表找到计数起点S计数到n,并且输出该元素,使结点在链表中删除,m减1.m=0?是结束否2详细设计:数据类型:structele{intno;structele*link;};调用的函数:structeleCreat(m){inti;h=u=(structel

5、e*)malloc(sizeof(structele));/*形成首表元*/h->no=1;for(i=2;i<=m;i++)/*形成其余的m-1个表元*/{u->link=(structele*)malloc(sizeof(structele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/}主函数:main(){structele*p,*q;intn,m,i,s;printf("请输入单向环表的结点数:");scanf("%d",&m);/*输入n和m*/C

6、reat(m);printf("请输入计数起点和间隔:");scanf("%d%d",&s,&n);if(s<1

7、

8、s>m)printf("您输入的数据有误");else{printf("输出序列为:");p=h;for(i=1;ilink;/*掠过前s-1个表元*/while(m){for(i=1;ilink;/*掠过n-1个表元*/q=p->link;/*p指向第n个表元*/p->link=q->link;/*第n个表元从环中脱钩*/printf("%4d",q->no);

9、free(q);/*释放第n个表元占用的空间*/m--;}}printf("");}四、程序调试分析(程序运行中遇到的问题与改正措施,以及对程序调试的体会与收获)局部变量和全局变量的使用;一些简单的语法错误;细节决定成败,养成良好的变成习惯十分重要。五、用户使用说明(说明如何使用你的程序,给出操作步骤)打开软件,待显示器上出现“请输入单向环表的结点数:”后:输入想要建立环表的结点数,按“enter”键结束。显示器上显示“请输入计数起点和间隔:”后,输入想要计数的起点按回车键后输入间隔数,按“enter”结束。若显示器上显示“您输

10、入的数据有误!”时说明你输入的为无效数据请查证。六、程序运行结果(列出测试结果,包括输入和输出,最好给出2个测试结果)1,请输入单向环表的结点数:10请输入计数起点和间隔:34输出序列为:610495213872,请输入单向环表的结点数:10请输入计数起点和间隔:124您输入的数据有误!七、程序清单(要求给函数加上注释)#include"stdlib.h"#includestructele{intno;structele*link;};structele*h,*u;//声明全局变量structeleCreat(m)

11、{inti;h=u=(structele*)malloc(sizeof(structele));/*形成首表元*/h->no=1;for(i=2;i<=m;i++)/*形成其余的m-1个表元*/{u->link=(structele*)malloc(sizeof(structele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/}main(){structele*p,*q;intn,m,i,s;printf("请输入单向环表的结点数:");scanf("%d"

12、,&m);/*输入n和m*/Creat(m);printf("请输入计数起点和间隔:");scanf("%d%d",&s,&n);if(s<1

13、

14、s>m)printf("您输入的数据有误");else{printf("输出序列为:

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

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

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