资源描述:
《哈工大计算机软件基础实验报告范例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一顺序存储的线性表维护子系统的实现实验报告姓名:学号:日期:一、实验程序#include#definemax20intlast=20;intnode[max]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};intmain(){inti,a,x,c,p,flag=0,r,s,u,v;intfind(intx);voidinsert(intp,intx);voiddelet(intp);voidmodify(intp,intx);printf("plea
2、seenternumber:1,查找值为x的点2,删除下标为p的节点3,修改下标为r的节点的值为s4,在下标为u的节点之前插入v5,退出系统");do{scanf("%d",&a);switch(a){case1:printf("pleaseenterthex");scanf("%d",&x);c=find(x);printf("findresult=%d",c);break;case2:printf("pleaseenterthedeletepotp");scanf("%d",&p);pri
3、ntf("beforedelete");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");delet(p);printf("afterdelete");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case3:printf("pleaseenterthepotrandthevalues");scanf("%d%d",&r,&s);printf("beforemodify");
4、for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");modify(r,s);printf("aftermodify");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case4:printf("pleaseenterthepotpandthevaluex");scanf("%d%d",&u,&v);printf("beforeinsert");for(i=0;i<=last-1;i
5、++)printf("%d",node[i]);printf("");insert(u,v);printf("afterinsert");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case5:flag=1;break;default:printf("inputerror");}}while(!flag);return(0);}intfind(intx){intk,findi;intflag2;k=findi=flag2=0;while(
6、k<=last-1&&!flag2){if(node[k]==x){findi=k;flag2=1;}elsek++;}if(!flag2)findi=-1;return(findi);}voiddelet(intp){intj;if(p>last-1
7、
8、p<0)printf("wrongposition!");else{for(j=p+1;j<=last-1;j++)node[j-1]=node[j];last=last-1;}}voidmodify(intp,intx){node[p]=x;}voidinsert(int
9、p,intx){intm;if(last==max)printf("thelistisfull!");else{for(m=last-1;m>=p;m--)node[m+1]=node[m];node[p]=x;last=last+1;}}二、实验过程根据题目要求,写出顺序存储的线性表的建立,查找,插入,删除,修改各段的子程序,主函数由switchcase语句构成主菜单,再将各部分有机结合在一起,经过反复的运行调试,得到最终的程序。三、实验分析在线性表的建立时,我直接用数组赋给它初值;在查找功能中要实现,当能找到时返回该值,
10、找不到返回-1;而修改功能则是在查找的基础上,将找到的值加以修改;在插入功能中要实现,再找到指定节点的基础上,当线性表满时,不能插入,当线性表不满时,可以插入;在删除功能重要实现,当线性表为空时或者删除位置不对时,都显示位置错误,不可删除,否则才可删除。四、实验