欢迎来到天天文库
浏览记录
ID:51840649
大小:51.45 KB
页数:2页
时间:2020-03-16
《数据结构试验报告格式.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验项目名称顺序表基本算法的设计与实现实验分数班级:计算085姓名学号完成时间一、实验目的:**********二、实验要求:**********三、实验内容:1.顺序表的初始化;2.顺序表的建立;3.顺序表的插入。四、实验设计与实现:1.顺序表的初始化StatusInit_SqList(SqList&L)LIST_INIT_SIZEL.elem顺序表的初始化是通过malloc函数在内存中申请LIST_INIT_SIZE个空间,并将顺序表的表长length设置为0,空间个数listsize设置为初始分配量LIST_INIT_SIZE。(1)申请空间L.elem=(E
2、lemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));(2)置表长为0L.length=0;(3)设置空间个数L.listsize=LIST_INIT_SIZE;顺序表初始化后的状态2.顺序表的建立StatusCreate_SqList(SqList&L,intn)L.elem11122334455顺序表的建立是在顺序表初始化后,通过for循环往顺序表的存储空间中读入n个数据元素,根据顺序存储的特点:Loc(ai)=Loc(a1)+(i-1)*L实现随机存储。由于实验中将ElemType看作是int,所以这里的L是2个字节
3、,线性表元素ai在程序中用L.elem[i-1]表示。用循环实现n个元素的读入:for(i=1;i<=ni++)cout<<“请读入第”<>L.elem[i-1];3.顺序表的插入StatusInsert_SqList(SqList&L,intiElemTypee)顺序表的插入是在顺序表建立后,在顺序表的第i个元素之前插入数据元素e。L.elem1122334455首先判断插入位置是否合法;其次,通过L.length和L.listsize判断顺序表中是否有多余的空间;如果空间满,则通过realloc函数重新申请更大的
4、空间,后完成插入操作;否则,直接完成插入操作。(1)判断插入位置是否合法i<1
5、
6、i>L.length+1不合法(2)判断顺序表的存储空间是否满L.length>=L.listsize空间满(3)如果顺序表当前空间已满,通过realloc重新分配更大空间,L.elem=(ElemType*)realloc(L.listsize,执行Insert_SqList(L,4,66)之前顺序表的状态(L.listsize+LISTINCREAMENT)*sizeof(ElemType))L.elem112233664455(4)将插入位置及其后元素从后向前依次后移一位q=L.
7、elem+i-1;for(p=L.elem+L.length-1;p>=q;p--)*(p+1)=*p(5)插入元素e*q=e(6)表长加1执行Insert_SqList(L,4,66)之后顺序表的状态L.length++一、实验运行结果分析:1.顺序表初始化。输出:顺序表初始化成功!2.顺序表的建立。(1)第一组值输入:12345输出:12345顺序表建立成功(2)第二组值输入:112233445566输出:112233445566顺序表建立成功(3)第三组值输入:10203040输出:10203040顺序表建立成功3.顺序表的插入。(1)第一组值执行Insert
8、_SqList(L,010)输出:你提供的插入位置不合法,不能完成插入操作!!!(2)第二组值执行Insert_SqList(L,488)输出:11223388445566在第4个元素前插入元素88成功!(3)第三组值执行Insert_SqList(L,1160)输出:你提供的插入位置不合法,不能完成插入操作!!!从实验运行结果分析,算法设计正确。二、实验总结
此文档下载收益归作者所有