资源描述:
《顺序表的定义及基本操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验题目顺序表的定义及基本操作实验时间一、实验目的、意义(1)掌握线性表顺序存储结构的特点。(2)熟练掌握顺序表的基本运算,理解用它们表示时插入与删除操作的算法。(3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力二、实验内容及要求说明1:学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。具体要求:建立顺序表,完成顺序表的基本操作:初始化
2、、插入、删除、输出(遍历)、销毁,置空表、求表长、查找元素、判线性表是否为空等。(参见教材19页)实验提示:(1)定义顺序表:SList,完成顺序表的基本操作,生成头文件SList.h。参考运行界面:三、实验所涉及的知识点指针,数组,函数四、实验记录(调试过程及调试中遇到的问题及解决办法,其他算法的存在与实践等。)冒泡排序法五、实验结果及分析(所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出。)15创建书序表按从小到大的顺序排列15算出顺序表的长度删除指定位置的数据查找元
3、素15退出六、总结与体会(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。)这次实验,让我发现原来自己的C语言编程能力是如此不足,也让我学会了很多新知识。七、程序清单(包含注释)头文件:/***********************************//**********顺序表头文件*********//***********************************/#include"stdio.h"#include"malloc.h"#defineN20/
4、/定义顺序表存储空间的初始分配量structlist//将结构体命名为list{15intlen;intv[N];};//redefinelististLISTorrenamewithcaplocktypedefstructlistLIST;/******输入函数********/voidmyinput(LIST*alist){inti,len,t;W:{printf("输入顺序表的长度");scanf("%d",&len);}//判断要分配的内存是否大于最大内存空间if(len>N){prin
5、tf("超过数组列表的最大长度,请输入1-20之间的数!");gotoW;};//(*alist).len=len;//thisstatementsameasfollows15alist->len=len;printf("输入顺序表的元素");for(i=0;ilen;i++){scanf("%d",&t);alist->v[i]=t;}}/*******输出函数********/voidmyoutput(LIST*alist){inti;printf("顺序表的元素是:
6、");for(i=0;ilen;i++){printf("%dt",alist->v[i]);}printf("");}/******删除指定数据函数*******/voidmyDelete(LIST*alist,intposition){15intj;if((position>alist->len)
7、
8、(alist->len<=0)){printf("没有数据元素可删除!");return;}printf("删除顺序表中的第[%d]个元素",position);print
9、f("%d",alist->v[position]);for(j=position;jlen;j++){alist->v[j]=alist->v[j+1];}alist->len=alist->len-1;printf("");}/******插入函数*******/voidmyInsert(LIST*alist,intposition,intx){intj;if((position>alist->len)
10、
11、(alist->len<0))15{printf("没有空间可插入
12、");return;}for(j=alist->len-1;j>=position;j--){alist->v[j+1]=alist->v[j];}alist->v[position]=x;alist->len=alist->len+1;printf("");}/******从小到大排序函数******/voidmySort(LIST*alist){intk,t,m;for(k=0;klen;k++){for(t=k;tlen;