资源描述:
《计算机软件基础实验报告周》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一顺序存储的线性表维护子系统的实现实验报告姓名:周建人学号:1080510221日期:2010・04・21一、实验程序#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);intni?iin(){inti,a,x,c,p,flag=0,r,s,u,v;intfind(intx);voidinsert(intp,intx);voiddelet(intp);voidm
2、odify(intp,intx);printf("pleaseenternumber:l,查找值为x的点2,删除下标为p的节点3,修改下标为r的节点的值为s4,在下标为u的节点之前插入v5,退出系统〃);do{scanf(〃%cT,&a);switch(a){case1:printf(/zpleaseenterthex〃);scanf&x);c=find(x);printf("findresult二%d",c);break;case2:printf("pleaseenterthedelet
3、epotp〃);scanf&p);printf(''beforedelete");for(i=0;i<=last~l;i++)printf(z/%d",node[i]);printfCW);delet(p);printf(''afterdelete");for(i=0;i<=last~l;i++)printf(/z%d",node[i]);printf("");break;case3:printf(^pleaseenterthepotrandthevalues");scanf("%d%d",&r,&s
4、);printf(''beforemodify'n");for(i=0;i<=last-l;i++)printf(/z%d",node[i]);printf("");modify(r,s);printf(''afterinodify'rT);for(i=0;i<=last-l;i++)printf(/z%d",node[i]);printf("");break;case4:printf("pleaseenterthepotpandthevaluexrT);scanf("%d%d",&u,&v);printf('
5、'beforeinsert'rT);for(i=0;i<=last-l;i++)printf(/z%d",node[i]);printfCO;insert(u,v);printf(''afterinsert,z);for(i=0;i<=last~l;i++)printf(z,%d",nodo[i]);printf("");break;case5:flag=l;break;default:printf(z,inputerrorArT);}}whi1e(!f1ag);return(0);intfind(intx)
6、{intk,findi;intflag2;k=findi=flag2=0;while(k<=last~l&&!flag2){if(node[k]=x){findi=k;flag2=l;}elsek卄;}if(!flag2)findi=-l;return(findi);}voiddelet(intp){intj;if(p>last-l
7、
8、p<0)printf(/zwrongposition!“);else{for(j=p+l;j<=last-l;j++)node[j-l]=node[j];last=last-l;}}v
9、oidmodify(intp,intx){node[p]=x;}voidinsert(intp,intx){intm;if(1ast==max)printfC'thelistisfull!");else{for(m=last-l;m>=p;m--)node[m+l]二node[in];node[p]=x;last=last+l;}二、实验过程根据题目要求,写出顺序存储的线性表的建立,查找,插入,删除,修改各段的子程序,主函数由switchcase语句构成主菜单,再将各部分有机结合在一起,经过反攵的运行调试,得到最终的
10、程序。三、实验分析在线性表的建立吋,我直接用数组赋给它初值;在查找功能中要实现,当能找到吋返回该值,找不到返回-1;而修改功能则是在查找的基础上,将找到的值加以修改;在插入功能中耍实现,再找到指定节点的基础上,当线性表满时,不能插入,当线性表不满时,可以插入;在删除功能重要实现,当线性表为空时或者删除位置不对时,都显