首页 > 编程知识 正文

顺序表的实现实验报告(《数据结构》实验报告(一)顺序表基本操作)

时间:2023-05-05 05:57:54 阅读:121563 作者:4933

# include stdio.h # include stdlib.h # define maxsize 100//顺序表的最大长度int k=0; //循环用全局变量typedef int elemtype; //元素类型; typedef struct { elemtype data [ maxsize ]; //用数组保存线性表元素的int length; //顺序表长度、要素个数; }SqList; 语音(sqlist * l )//初始化顺序表; { L-length=0; //将顺序表初始化为空,长度为零; (intlistlength ) SQList*L ) /求出顺序表的长度,也就是顺序表中要素的个数; {if(L==null ) return 0; else返回长度; (intgetelem )查找第sqlistL、int i、elemtype *e )/I个元素,用e返回; {if(l.length==0||I1||Il.length ) /判断编号是否正确({ printf ) )输入错误,无法确定该元素的位置! n '; 返回0; } printf ('查询位置为%d的元素n ',I ); *e=L.data[i-1]; //数据元素的编号从1开始,数组从0开始,所以与第I个元素对应的数组下标为i-1; 返回0; }intlocateelem(SQListL,elemtype e ) /根据内容查找表中元素e的位置; {for(k=0; kL.length; k () if ) l.data[k]==e ) ) { printf )已验证%d,%d的位置为',e,e )。 返回k 1; } }返回0; }intlistinsert(sqlist*L,int i,elemtype e ) /插入元素(if(L-length==maxsize ) { printf ) )顺序表已满,无法再插入元素。 n '; 返回0; }if(I1||il-length1) { printf )的输入错误。 请再次输入。 n '; 返回0; (else ) for ) k=L-length; k=i-1; k--//将各要素转换为L-data[k 1]=L-data[k]; L-data[i-1]=e; //插入新元素L-length长度返回1; }删除}intlistdelete(SQList*L,int i,elemtype *e ) /第I个元素e,然后备份回变量e。 {if(L-Length==0) return 0; 请再次输入有无if(I1||il-length ) { printf输入! n '; 返回0; } *e=L-data[i-1]; for(k=I; kL-length; k ) L-data[k-1]=L-data[k]; l长度- -; 返回0; }intemptylist(sqlistL ) /判定表是否为空(if ) l.length==0(printf ) )顺序表为空n ); else printf (序列表不为空n ); }intshowlist(sqlistL )//打印顺序表; {if(l.length==0) { printf ) }顺序表为空! n '; 返回0; (for ) k=0; kL.length; k ) printf ('第%d元素为%d(n ),k 1,L.data[k] ); 返回1; (}int main ) ) { elemtype e; SqList list1; initlist(list1; list1.data[0]=1; list1.data[1]=2; list1.data[2]=3; list1.data[3]=13; list1.data[4]=23; list1.data[5]=54; list1.length=6; printf(%d(n ),locateelem ) list 1,23 ); 显示列表(列表1; printf (表的长度为%d(n )、list length (list1) ); printf---------------- '; 列表插入(列表1、7、43; printf((n ); printf ('插入的元素为43(n ); 插入printf ('元素后的顺序表为n ); 显示列表(列表1; printf (表的长度为%d(n )、list length (list1) ); printf--------n '; 列表删除(列表1,4,e ); printf ('要删除的元素是%dn ',e ); 删除printf ('元素后的顺序表为n ); 显示列表(列表1; printf (表长度为%d(n ),列表长度(listLength ) list1); printf--------n '; get elem (列表1,4,e ); printf ('查询位置的元素为%dn ',e ); 显示列表(列表1; Empty list (列表1; 返回0; }参考:

《数据结构》学习指导和实验指导书(第二版)------拉长的面包

【数据结构】顺序表的c语言实现------寻找空间

接送门

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。