您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 南昌大学数据结构实验程序
实验一基于数组的表实验1.初始化顺序表La。2.在顺序表中插入元素形成表[1020304050],并输出表。#includestdio.h#includestdlib.h#definemaxsize9typedefstruct{intdata[maxsize];intlength;}seqlist;/*初始化线性表*/seqlistsqinit(){seqlistL;L.length=0;returnL;}/*插入元素*/seqlistsqinsert(seqlistl,intx){if(l.length==maxsize){printf(overflow);exit(0);}elsel.length++;l.data[l.length-1]=x;returnl;}/*输出表元素*/voidsqprint(seqlistL){inti;for(i=0;iL.length;i++)printf(%d\n,L.data[i]);}/*主函数*/main(){seqlistLa;La=sqinit();La=sqinsert(La,10);La=sqinsert(La,20);La=sqinsert(La,30);La=sqinsert(La,40);La=sqinsert(La,50);sqprint(La);}(1)删除表中第3个元素,并输出表#includestdio.h#includestdlib.h#definemaxsize9typedefstruct{intdata[maxsize];intlength;}seqlist;/*初始化线性表*/seqlistsqinit(){seqlistL;L.length=0;returnL;}/*插入元素*/seqlistsqinsert(seqlistl,intx){if(l.length==maxsize){printf(overflow);exit(0);}elsel.length++;l.data[l.length-1]=x;returnl;}/*删除元素*/seqlistsqdelete(seqlistL,inti){intj;if((i1)||(iL.length)){printf(Notthiselementinthelist\n);exit(0);}for(j=i;j=L.length-1;j++)L.data[j-1]=L.data[j];L.length--;returnL;}/*输出表元素*/voidsqprint(seqlistL){inti;for(i=0;iL.length;i++)printf(%d\n,L.data[i]);}/*主函数*/main(){seqlistLa;La=sqinit();La=sqinsert(La,10);La=sqinsert(La,20);La=sqinsert(La,30);La=sqinsert(La,40);La=sqinsert(La,50);La=sqdelete(La,3);sqprint(La);}(2)删除元素40,并输出表#includestdio.h#includestdlib.h#definemaxsize9typedefstruct{intdata[maxsize];intlength;}seqlist;/*初始化线性表*/seqlistsqinit(){seqlistL;L.length=0;returnL;}/*插入元素*/seqlistsqinsert(seqlistl,intx){if(l.length==maxsize){printf(overflow);exit(0);}elsel.length++;l.data[l.length-1]=x;returnl;}/*删除i位置上元素*/seqlistsqdelete(seqlistL,inti){intj;if((i1)||(iL.length)){printf(Notthiselementinthelist\n);exit(0);}for(j=i;j=L.length-1;j++)L.data[j-1]=L.data[j];L.length--;returnL;}/*删除值为x元素*/seqlistsqde(seqlistL,intx){intI=1,j;while(I=L.length&&L.data[I-1]!=x)I++;if(I=L.length){for(j=I;j=L.length-1;j++)L.data[j-1]=L.data[j];L.length--;returnL;}else{printf(Thiselemarenotinthelist);}}/*输出表元素*/voidsqprint(seqlistL){inti;for(i=0;iL.length;i++)printf(%d\n,L.data[i]);}/*主函数*/main(){seqlistLa;La=sqinit();La=sqinsert(La,10);La=sqinsert(La,20);La=sqinsert(La,30);La=sqinsert(La,40);La=sqinsert(La,50);La=sqde(La,40);sqprint(La);}(5)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。#includestdio.h#includestdlib.h#definemaxsize9typedefstruct{intdata[maxsize];intlength;}seqlist;/*初始化线性表*/seqlistsqinit(){seqlistL;L.length=0;returnL;}/*插入元素*/seqlistsqinsert(seqlistl,intx){if(l.length==maxsize){printf(overflow);exit(0);}elsel.length++;l.data[l.length-1]=x;returnl;}/*删除i位置上元素*/seqlistsqdelete(seqlistL,inti){intj;if((i1)||(iL.length)){printf(Notthiselementinthelist\n);exit(0);}for(j=i;j=L.length-1;j++)L.data[j-1]=L.data[j];L.length--;returnL;}/*删除值为x元素*/seqlistsqde(seqlistL,intx){intI=1,j;while(I=L.length&&L.data[I-1]!=x)I++;if(I=L.length){for(j=I;j=L.length-1;j++)L.data[j-1]=L.data[j];L.length--;returnL;}else{printf(Thiselemarenotinthelist);}}/*查找元素第一次出现的位置*/intsqlocate(seqlistL,intx){intI=1;while(I=L.length&&L.data[I-1]!=x)I++;if(I=L.length)returnI;elsereturn0;}/*输出表元素*/voidsqprint(seqlistL){inti;for(i=0;iL.length;i++)printf(%d\n,L.data[i]);}/*主函数*/main(){intm;seqlistLa;La=sqinit();La=sqinsert(La,10);La=sqinsert(La,20);La=sqinsert(La,30);La=sqinsert(La,40);La=sqinsert(La,50);m=sqlocate(La,30);{printf(%d\n,m);}La=sqdelete(La,3);sqprint(La);}如试验中取x=30,实验结果如下实验二链表实验编写程序完成单链表的下列基本操作:1)用头插入法生成一个链表[13579],结点的数值从键盘上输入。输出上述链表#includestdio.h#includestdlib.h#includemalloc.h/*定义*/typedefstructnode{intdata;structnode*next;}LNODE,*linkedlist;/*建立表*/linkedlistlistbuild(){intx;LNODE*L,*p,*q;L=(LNODE*)malloc(sizeof(LNODE));L-next=NULL;scanf(%d,&x);while(x!=0){p=(LNODE*)malloc(sizeof(LNODE));p-data=x;p-next=L-next;L-next=p;scanf(%d,&x);}return(L);}/*初始化链表*/linkedlistlistinit(){linkedlistL;L=(LNODE*)malloc(sizeof(LNODE));if(L==NULL){printf(memorynotenough);exit(0);}L-next=NULL;returnL;}/*第i个结点插入元素*/voidlistins(linkedlistL,inti,intx){linkedlistp,s;intj;p=L;j=0;while(p&&ji-1){p=p-next;j++;}if(!p||ji){printf(positionerror);exit(0);}s=(LNODE*)malloc(sizeof(LNODE));s-data=x;s-next=p-next;p-next=s;}/*求链表表长*/intlistlen(linkedlistL){linkedlistp;intj;p=L-next;j=0;while(p){j++;p=p-next;}returnj;}/*输出链表*/voidlistprint(linkedlistL){linkedlistp;p=L-next;while(p!=NULL){printf(%d,p-data);p=p-next;}}main(){linkedlistLa;La=listbuild();printf(链表元素为:);listprint(La);printf(\n);}2)在链表的第1个位置插入元素10,输出上述链表;#includestdio.h#includestdlib.h#includemalloc.h/*定义*/typedefstructnode{intdata;structnode*next;}LNODE,*linkedlist;/*建立表*/linkedlistlistbuild(){intx;LNODE*L,*p,*q;L=(LNODE*)malloc(sizeof(LNODE));L-next=NULL;scanf(%d,&x);while(x!=0){p=(LNODE*)malloc(sizeof(LNODE));p-data=x;p-next=L-next;L-next=p;scanf(%d,&x);}return(L);}/*初始化链表*/linkedlistlistinit(){linkedlistL;L=(LNODE*)malloc(sizeof(LNODE));if(L==NULL){printf(memorynotenough);exit(0);}L-next=NULL;returnL;}/*第i个结点插入元素*/voidlistins(linkedlistL,inti,intx){linkedlistp,s;intj;p=L;j=0;while(p&&ji-1){p=p-next;
本文标题:南昌大学数据结构实验程序
链接地址:https://www.777doc.com/doc-3552521 .html