如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验报告课程名称软件技术基础班级姓名:学号:班级:顺序号04讲授实习提纲(用加粗和下划线标出重点、难点内容)及时间分配;*表示重点、**表示难点、***表示重难点实验四线性表的删除一、实验目的:1.加深理解顺序表的意义;2.掌握用它的删除操作方法;二、实验内容:1.在上次实验的基础上,先建立线性表,然后用线性表插入法插入5个数据;2.编写线性表的删除函数;3.编写主程序,并在主程序中调用线性表的初始化函数,调用线性表的插入函数,最后调用线性表的删除函数,并验证程序的正确性。三、实验结果(辅导学生完成实验,并由学生写出实验结果、分析实验结果)#include"stdlib.h"#include"stdio.h"//输出线性表voidoutput(int*v,intm){inti;printf("\nthelinearlistis:\n");for(i=0;i<m;i++){printf("%5d",*(v+i));}printf("\n");}//初始化线性表int*initsl(int*v,intm,int*n){v=(int*)malloc(m*sizeof(int));*n=0;returnv;}//在线性表的指定位置i插入数据bint*insl(int*v,intm,int*n,inti,intb){intj;if(*n==m){printf("overflow;\n");returnv;}if(i>*n)i=*n+1;if(i<1)i=1;if(*n!=0){for(j=*n;j>=i;j--)*(v+j)=*(v+(j-1));}*(v+(i-1))=b;*n=*n+1;returnv;}//将线性表的指定位置的数据b删除int*desl(int*v,intm,int*n,inti){intj;if(*n==0){printf("\nunderflow\n");returnv;}if((i<1)||(i>*n)){printf("Notthiselementinthelist;\n");returnv;}for(j=i;j<=*n-1;j++){*(v+j-1)=*(v+j);}*n=*n-1;*(v+*n)=0;returnv;}voidmain(){int*sl=NULL;intsl_len;intnum;inti,place,inls_num;//**************************************//printf("pleaseinputthelenofls:");scanf("%d",&sl_len);//指定线性表的长度sl=initsl(sl,sl_len,&num);//线性表的初始化//***************************************//for(i=0;i<sl_len;i++){printf("\nplace=");scanf("%d",&place);//指定插入数据的位置printf("\ninls_num=");scanf("%d",&inls_num);//指定要插入的数据sl=insl(sl,sl_len,&num,place,inls_num);//在线性表的指定位置插入一个数据output(sl,num);//输出线性表}//***************************************//printf("\nplace=");scanf("%d",&place);//指定删除数据的位置sl=desl(sl,sl_len,&num,place);output(sl,num);//输出线性表}教学方法与教具上机操作提问题目与结果验证性实验实施情况与内容其它时间:周二晚6:30—8:10地点:现教中心开3、开4(补上周5课)(等级考试占用)实现模块化程序设计——即将一个大的复杂的问题分解为多个小的简单的模块。若模块仍较复杂,则再细化直到模块变得简单为止,这种自顶向下,逐步求精的程序设计方法是现代化程序设计的主要方法。此方法强调清晰第一,效率与空间次之。main函数initsl(sl,sl_len,&num)insl(sl,sl_len,&num,place,inls_num);output(sl,num);desl(sl,sl_len,&num,place);output(sl,num);