还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据构造》试验汇报一系别班级:学号姓名:日期:指导教师:
一、上机试验的问题和规定:次序表的查找、插入与删除设计算法,实现线性构造上的I次序表的产生以及元素的查找、插入与删除详细实现规定从键盘输入10个整数,产生次序表,并输入结点值从键盘输入1个整数,在次序表中查找该结点的位置若找到,输出结点的位置;若找不到,则显示“找不到二从键盘输入2个整数,一种表达欲插入的位置i,另一种表达欲插入的J数值X,将x插入在对应位置上,输出次序表所有结点值,观测输出成果
二、程序设计的基本思想,原理和算法描述:从键盘输入1个整数,表达欲删除结点日勺位置,输出次序表所有结点值,观测输出成果(包括程序日勺构造,数据构造,输入/输出设计,符号名阐明等)
六、对算法的程序的讨论、分析,改善设想,其他经验教训:
七、对试验方式、组织、设备、题目的意见和提议:
三、源程序及注释:ttinclude stdio.h/*次序表日勺定义*/ttdefine ListSize100/*表空间大小可根据实际需要而定,这里假设为100*/typedef intDataType;/*DataType可以是任何对应日勺数据类型如int,float或char*/typedef struct{DataType data[ListSize];/*向量data用于寄存表结点*/int length;/*目前的J表长度*/}SeqList;/*子函数日勺申明*/void CreateListSeqList*L,int n;/*创立次序表函数*/int LocateListSeqList L,DataType x;/*查找次序表*/void InsertListSeqList*L,DataType x,int i;/*在次序表中插入结点x*/void DeleteListSeqList*L,int i;/*在次序表中删除第i个结点*/void PrintListSeqList L,int n;/*打印次序表中前n个结点*/void mainSeqList L;int n=10,x,i;/*欲建立的次序表长度*/L.length=O;/*调用创立线性表函数*/printf z,create function:\n,z;CreateList L,n;/*建立次序表*/PrintList L,n;/*打印次序表*//*调用查找函数*/printf searchfunction:\n,z;printf input the datayou wantto search/;scanf%d〃,x;i=LocateList L,x;/*次序表查找*/if i==0printf z,sorry,don,t find%d!\n\n〃,x;elseprintf z,i havefind the%d,it locatein%d!\n\n〃,x,i;/*调用插入函数*/printf Insertfunction:\n,z;printf〃输入要插入欧J位置input theposition:z,;scanf〃%d〃,i;printf〃输入要插入的I元素:input thedata:,z;scanf〃%d〃,x;InsertList L,x,i;/*次序表插入*/PrintList L,n;/*打印次序表*//*调用删除函数*/printf z,delete function:\n,z;printf〃输入要删除的J位置inputtheposition:,z;scanf〃%d〃,i;DeleteList L,i;/*次序表删除*/PrintListL,n;/*打印次序表*//*次序表的建立*/void CreateListSeqList*L,int n{int i;for i=0;i〈n;i++{printf z,\ninput the%d data/,i+1;scanf*L.data[i];*L.length=n;/*次序表的查找*/int LocateListSeqList L,DataType x{int i=0;while iL.lengthx!=L.data[i]++i;if iL.length returni+1;else return0;/*次序表的插入*/void InsertListSeqList*L,DataType x,inti{/*将新结点x插入L所指的次序表日勺第i个结点的位置上*/if i0||i*L.lengthint j;printf(〃插入位置非法〃);exit0;if*L.length〉=ListSizeprintf(〃表空间溢出,退出运行〃);exit0;*L.data[j+l]=*L.data[j];/*次序表元素从后向前依次后移*/*L.length++;/*表长自增1*/*L.data[i-l]=x;/*将x插入第i个结点位置*//*次序表日勺删除*/void DeleteListSeqList*L,int i{/*从L所指日勺次序表中删除第i个结点*/int j;if i0||i*L.lengthprintf〃删除位置非法〃;exit0;for j=i;j=*L.length-1;j++*L.data[j]=*L.data[j+l];/*次序表自第i个结点开始,依次前移*/*L.length—;/*表长自减1*//*次序表的打印*/void PrintListSeqListL,int nprintf/zthe sequallist datais:〃;for i=0;i〈n;i++U!运行输出成果:printf〃%d〃,L.data[i];
五、调试和运行程序过程中产生的问题及采用的措施:。
个人认证
优秀文档
获得点赞 0