《线性表的建立、插入、删除.doc》由会员分享,可在线阅读,更多相关《线性表的建立、插入、删除.doc(6页珍藏版)》请在金锄头文库上搜索。
1、软件基础基础实验报告系别:土木工程 班级:城市规划 学号:1100501009 姓名:余书振 实验时间:20120918 实验地点:开4实验环境:Turbo c+3.0(vc6.0)实验名称:线型表的建立、插入和删除(实验三和实验四的综合)实验目的:(1)学习线性表中的顺序表的结构(2)学会建立顺序表(3)学会线性表的顺序存储下的插入运算(4)学会线性表的顺序存储下的删除运算实验内容:建立和插入建立一个空间容量为10,长度为8的顺序存储空间(参考课件中算法描述)输入数据为教材第24页图2.7,现要求在第2个元素之前插入87,然后在第9个元素之前插入14如下图所示。把插入后的结果打印出来。(参考
2、课件中算法描述)程序代码:#includestdio.h#includestdlib.hinput(int *v,int *n) int i; printf(请输入数据:n); for(i=0;i*n;i+) scanf(%d,v+i);/*逐个输入元素,并打印*/output(int *v,int *n) int i; for (i=0;i*n-1) i=*n+1; /*/ if (i=i;j-) vj=vj-1; /*插入点之后的元素按从后至前的顺序后移*/ vi-1=b; /*插入点赋予元素b*/ *n=*n+1;空间大小即元素个数加1 return ;/*desl(int *v,int
3、 m,int *n,int i)int j;if(*n=0)printf(underflow n);if (i*n)printf(not this element n);return v;for (j=i;j=*n-1;j+)vj-1=vj;*n=*n-1;return v;*/void main()int *v=NULL,*n=NULL,m,i,b; /*定义线性表为空*/char c; /*下面要用到交互,需定义成字符*/n=(int *)malloc(sizeof(int);printf(请输入线性表的空间大小:);scanf(%d,&m);v=initsl(m,n);/建立线型表pri
4、ntf(请输入线性表的实际长度 :);scanf(%d,n);input(v,n);output(v,n);getchar();/*从键盘得到字符*/printf(是否要插入元素Y/N:); /*交互信息*/c=getchar();getchar();/*将输入字符赋给c*/ while (c=Y|c=y) /*循环判断条件*/printf(n请输入要插入的位置i和元素b:); scanf(%d,%d,&i,&b); insl(v,m,n,i,b);/插入数据 output(v,n); /*输出插入后的数据*/getchar(); printf(是否要继续插入元素Y/N:);c=getchar
5、(); getchar();/*继续执行上面的交互循环*/实验内容:删除建立一个空间容量为10,长度为8的顺序存储空间(参考实验三)输入数据为教材第24页图2.7,现要求删除线性表第1个元素(删除元素29),然后再删除线性表的第六个元素(删除元素31)。把删除后的线性表打印出来。如下图所示: 程序代码:#includestdio.h#includestdlib.hinput(int *v,int *n) int i; printf(请输入数据:n); for(i=0;i*n;i+) scanf(%d,v+i);output(int *v,int *n) int i; for (i=0;i*n-
6、1) i=*n+1; if (i=i;j-) vj=vj-1; vi-1=b; *n=*n+1; return ;*/desl(int *v,int m,int *n,int i)int j;if(*n=m)printf(underflow n);if (i*n)printf(not this element n);return v;for (j=i;j=*n-1;j+)vj-1=vj;*n=*n-1;return v;void main()int *v=NULL,*n=NULL,m,i,b;char c;n=(int *)malloc(sizeof(int);printf(请输入线性表的空间大小:);scanf(%d,&m);v=initsl(m,n);/建立线型表printf(请输入线性表的实际长度 :);scanf(%d,n);input(v,n);output(v,n);getchar();printf(是否要删除元素Y/N:);c=getchar();getchar(); while (c=Y|c=y)printf(n请输入要删除的位置i和元素b:); scanf(%d,%d,&i,&b); desl(v,m,n,i,b);/删除数据 output(v,n);getchar(); printf(是否要继续删除元素Y/N:);c=getchar(); getchar();