1、关于顺序表的实验报告20112012学年第一学期合肥学院数理系实验报告课程名称: 数据结构 实验项目: 顺序表的基本运算 实验类别:综合性 设计性 验证性 专业班级: 09数学(2) 姓 名: 张琼 学 号: 0907022040 实验地点: 7#606 实验时间: 2011.10.28 指导教师: 李旭 成 绩: 一.实验目的:熟悉关于顺序表的一些基本运算 二.实验内容:顺序表置空#include #define maxlen 20typedef struct int datamaxlen; int last;Sequenlist;void SqLsetnull(Sequenlist *L)
2、 L-last=-1;void main()Sequenlist l;SqLsetnull(&l);顺序表求表长#include #define maxlen 20typedef struct int datamaxlen; int last;Sequenlist;int sqllength(Sequenlist *l)return (l-last+1);void main() Sequenlist l; int i; for(i=0;i10;i+) scanf(%d,&l.datai); l.last=i-1; printf(%d,sqllength(&l);按序号取元素程序#include
3、 #define maxlen 20typedef struct int datamaxlen; int last;sequenlist;int sqlget(sequenlist *l,int i) int x; if(il-last+1) printf(超出范围); else x=l-datai-1; return x;void main() sequenlist l; int i,j; for(i=0;i10;i+) scanf(%d,&l.datai); l.last=i-1; printf(请输入序号n); scanf(%d,&j); printf(%d,sqlget(&l,j);按
4、值查找程序#include #define maxlen 20typedef struct int datamaxlen; int last;Sequenlist;void sqllocate(Sequenlist *l,int x) int i,z=0; for(i=0;ilast+1;i+) if(l-datai=x) printf(%d,i+1); z=1; if(z=0) printf(%d,-1);void main() Sequenlist l; int i,n; for(i=0;i5;i+) scanf(%d,&l.datai); l.last=i-1; printf(请输入要查
5、找的数n); scanf(%d,&n); sqllocate(&l,n);判表满程序#include #define maxlen 10typedef struct int datamaxlen; int last;Sequenlist;int sqlempty(Sequenlist *l) if(l-last+1=maxlen) return(1); else return(0);void main() Sequenlist l; int i,n; for(i=0;i5;i+) scanf(%d,&l.datai); l.last=i-1; printf(%d,sqlempty(&l);顺序
6、表插入程序#include #define maxlen 20typedef struct int datamaxlen; int last;Sequenlist;int sqlempty(Sequenlist *l) if(l-last+1=maxlen) return(1); else return(0);int sqlinsert(Sequenlist *l,int i,int x) int j; if(sqlempty(l)=1) printf(overflow); return(0); else if(il-last+2) printf(error);return(0); else
7、for(j=l-last;j=i-1;j-) l-dataj+1=l-dataj; l-datai-1=x; l-last=l-last+1; return(1); void main() Sequenlist l; int i,n,m; for(i=0;i5;i+) scanf(%d,&l.datai); l.last=i-1; printf(请输入插入的位置和元素n); scanf(%d%d,&m,&n); sqlinsert(&l,m,n); for(i=0;i6;i+) printf(%d ,l.datai);删除元素程序#include #define maxlen 20typede
8、f struct int datamaxlen; int last;sequenlist;int sqldelete(sequenlist *l,int i) int j; if(l-last0) printf(顺序表为空); return 0; else if(il-last+1) printf(参数出错); return 0; else for(j=i;jlast+1;j+) l-dataj-1=l-dataj; l-last-; return 1; void main() sequenlist l; int i,n; for(i=0;i5;i+) scanf(%d,&l.datai); l.last=i-1; printf(请输入删除的位置n); scanf(%d,&n); printf(%d,sqldelete(&l,n); 三. 实验方案(程序设计说明)五程序运行结果求表长按序号取元素按值查找判表满顺序表插入删除元素六实验总结通过本次实验,我掌握了有关顺序表的一些基本运算,顺序表的置空、求表长、按序号取元素、按值查找、判表满、插入数据、删除元素。进一步熟悉了顺序表的基本算法 学生签名:张琼 年 月 日七教师评语及成绩 教师签名: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1