当前位置:首页 > 电子/通信 > 综合/其它 > 关于顺序表的实验报告
2011——2012学年第一学期合肥学院数理系实验报告课程名称:数据结构实验项目:顺序表的基本运算实验类别:综合性□设计性□验证性□专业班级:09数学(2)姓名:张琼学号:0907022040实验地点:7#606实验时间:2011.10.281指导教师:李旭成绩:一.实验目的:熟悉关于顺序表的一些基本运算二.实验内容:顺序表置空#includestdio.h#definemaxlen20typedefstruct{intdata[maxlen];intlast;}Sequenlist;voidSqLsetnull(Sequenlist*L){L-last=-1;}voidmain(){Sequenlistl;SqLsetnull(&l);}顺序表求表长#includestdio.h2#definemaxlen20typedefstruct{intdata[maxlen];intlast;}Sequenlist;intsqllength(Sequenlist*l){return(l-last+1);}voidmain(){Sequenlistl;inti;for(i=0;i10;i++)scanf(%d,&l.data[i]);l.last=i-1;printf(%d,sqllength(&l));}按序号取元素程序#includestdio.h#definemaxlen20typedefstruct{intdata[maxlen];3intlast;}sequenlist;intsqlget(sequenlist*l,inti){intx;if(i1||il-last+1)printf(超出范围);elsex=l-data[i-1];returnx;}voidmain(){sequenlistl;inti,j;for(i=0;i10;i++)scanf(%d,&l.data[i]);l.last=i-1;printf(请输入序号\n);scanf(%d,&j);printf(%d,sqlget(&l,j));}4按值查找程序#includestdio.h#definemaxlen20typedefstruct{intdata[maxlen];intlast;}Sequenlist;voidsqllocate(Sequenlist*l,intx){inti,z=0;for(i=0;il-last+1;i++)if(l-data[i]==x){printf(%d,i+1);z=1;}if(z==0)printf(%d,-1);}voidmain(){Sequenlistl;inti,n;for(i=0;i5;i++)5scanf(%d,&l.data[i]);l.last=i-1;printf(请输入要查找的数\n);scanf(%d,&n);sqllocate(&l,n);}判表满程序#includestdio.h#definemaxlen10typedefstruct{intdata[maxlen];intlast;}Sequenlist;intsqlempty(Sequenlist*l){if(l-last+1=maxlen)return(1);elsereturn(0);}voidmain(){6Sequenlistl;inti,n;for(i=0;i5;i++)scanf(%d,&l.data[i]);l.last=i-1;printf(%d,sqlempty(&l));}顺序表插入程序#includestdio.h#definemaxlen20typedefstruct{intdata[maxlen];intlast;}Sequenlist;intsqlempty(Sequenlist*l){if(l-last+1=maxlen)return(1);elsereturn(0);}intsqlinsert(Sequenlist*l,inti,intx)7{intj;if(sqlempty(l)==1){printf(overflow);return(0);}elseif((i1)||(il-last+2)){printf(error);return(0);}else{for(j=l-last;j=i-1;j--)l-data[j+1]=l-data[j];l-data[i-1]=x;l-last=l-last+1;return(1);}}voidmain(){Sequenlistl;inti,n,m;8for(i=0;i5;i++)scanf(%d,&l.data[i]);l.last=i-1;printf(请输入插入的位置和元素\n);scanf(%d%d,&m,&n);sqlinsert(&l,m,n);for(i=0;i6;i++)printf(%d,l.data[i]);}删除元素程序#includestdio.h#definemaxlen20typedefstruct{intdata[maxlen];intlast;}sequenlist;intsqldelete(sequenlist*l,inti){intj;if(l-last0){printf(顺序表为空);9return0;}elseif((i1)||(il-last+1)){printf(参数出错);return0;}else{for(j=i;j=l-last+1;j++)l-data[j-1]=l-data[j];l-last--;return1;}}voidmain(){sequenlistl;inti,n;for(i=0;i5;i++)scanf(%d,&l.data[i]);l.last=i-1;10printf(请输入删除的位置\n);scanf(%d,&n);printf(%d,sqldelete(&l,n));}三.实验方案(程序设计说明)五.程序运行结果求表长按序号取元素11按值查找判表满12顺序表插入删除元素13六.实验总结通过本次实验,我掌握了有关顺序表的一些基本运算,顺序表的置空、求表长、按序号取元素、按值查找、判表满、插入数据、删除元素。进一步熟悉了顺序表的基本算法学生签名:张琼七.教师评语及成绩教师签名:年月日年月日
本文标题:关于顺序表的实验报告
链接地址:https://www.777doc.com/doc-2677099 .html