欢迎来到天天文库
浏览记录
ID:44197217
大小:281.12 KB
页数:22页
时间:2019-10-19
《数据结构实验报告代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、线性表代码一#include"stdio.h"#inelude"malloc.h"#defineOK1#defineERROR0#defineOVERFLOW-2#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{int*elem;intlength;intlistsize;JSqList;intlnitList_Sq(SqList*L){L->elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));if(!L->elem)returnERROR;
2、L->length=0;L->listsize=LISTINITSIZE;returnOK;}intListlnsert_Sq(SqList*L,inti,inte){int*p,*newbase,*q;if(i<111i>L->length+l)returnERROR;if(L->length>=L->listsize){newbase=(int*)realloc(L->elemz(L->listsize+LISTINCREMENT)*sizeof(int));if(Inewbase)returnERROR;L->elem=newbase;L->l
3、istsize+=LISTINCREMENT;}q=&(L->elem[i-l]);〃插入后元素后移for(p=&(L->elem[L->length・l]);p>=q;p-)*(p+l)=*p;*q=e;L->length++;returnOK;}intListDelete_Sq(SqList*LZintizint*e){int*p,*q;if(iL->length)returnERROR;p=&(L->elem[i-l]);*e=*p;q=L->elem+L->length-1;for(p=&L->elem[i-l];p4、*p=*(p+l);-L->length;returnOK;}〃求顺序表的长度intListLength_Sq(SqListL){〃实现此函数printf("链表长度为%d”,L.length);return1;}intPrintList_Sq(SqListL)//输出顺序表中的元素{//实现此函数int*p,c=0;for(p=&L.elem[c];c5、表逆置{inti;intx;for(i=l;i<=PL->length/2;i++){x=PL->elem[i-l];PL->elem[i-l]=PL->elem[PL->length-i];PL->elem[PL->length-i]=x;}}intmain()SqUstL;inte,mj,a,n=0;lnitList_Sq(&L);printfC*链表输入多少个元素n:”);scanf(”%cT',&m);for(a=0;a6、_Sq(&L,ize);}while(n!=10)(2)删除指定的第i个元素:2");(4)将顺序表逆置:4");(6)退出:6“);printf(“⑴出顺序表中的元素printf「⑶输出顺序表的长度:3printff"(5)顺序链表插入元素:5printf(h请输入你的选择:”);scanf(”%d”,&n);switch(n)casel:PrintList_Sq(L);;break;case2:printf("删除指定的第i个元素:”);scanf(”%cT,&i);ListDelete_Sq(&L,i,&e);printff'删除元7、素大小为:%d"/e);;break;case3:ListLength_Sq(L);break;case4:Reverse_SeqList(&L);break;case5:printf("插入指定的第i个元素之前:”);scanf(”%d”,&i);printf(H插入元素大小为:“);scanf(”%d“,&e);Listlnsert_Sq(&L,i,e);break;case6:printff"即将退tBH);n=10;break;default:printf("输入错i^");n=10;break;}}return0;}代码二#incl8、ude"stdio.h"#include"malloc.h"#defineOK1#defineERROR0#
4、*p=*(p+l);-L->length;returnOK;}〃求顺序表的长度intListLength_Sq(SqListL){〃实现此函数printf("链表长度为%d”,L.length);return1;}intPrintList_Sq(SqListL)//输出顺序表中的元素{//实现此函数int*p,c=0;for(p=&L.elem[c];c5、表逆置{inti;intx;for(i=l;i<=PL->length/2;i++){x=PL->elem[i-l];PL->elem[i-l]=PL->elem[PL->length-i];PL->elem[PL->length-i]=x;}}intmain()SqUstL;inte,mj,a,n=0;lnitList_Sq(&L);printfC*链表输入多少个元素n:”);scanf(”%cT',&m);for(a=0;a6、_Sq(&L,ize);}while(n!=10)(2)删除指定的第i个元素:2");(4)将顺序表逆置:4");(6)退出:6“);printf(“⑴出顺序表中的元素printf「⑶输出顺序表的长度:3printff"(5)顺序链表插入元素:5printf(h请输入你的选择:”);scanf(”%d”,&n);switch(n)casel:PrintList_Sq(L);;break;case2:printf("删除指定的第i个元素:”);scanf(”%cT,&i);ListDelete_Sq(&L,i,&e);printff'删除元7、素大小为:%d"/e);;break;case3:ListLength_Sq(L);break;case4:Reverse_SeqList(&L);break;case5:printf("插入指定的第i个元素之前:”);scanf(”%d”,&i);printf(H插入元素大小为:“);scanf(”%d“,&e);Listlnsert_Sq(&L,i,e);break;case6:printff"即将退tBH);n=10;break;default:printf("输入错i^");n=10;break;}}return0;}代码二#incl8、ude"stdio.h"#include"malloc.h"#defineOK1#defineERROR0#
5、表逆置{inti;intx;for(i=l;i<=PL->length/2;i++){x=PL->elem[i-l];PL->elem[i-l]=PL->elem[PL->length-i];PL->elem[PL->length-i]=x;}}intmain()SqUstL;inte,mj,a,n=0;lnitList_Sq(&L);printfC*链表输入多少个元素n:”);scanf(”%cT',&m);for(a=0;a6、_Sq(&L,ize);}while(n!=10)(2)删除指定的第i个元素:2");(4)将顺序表逆置:4");(6)退出:6“);printf(“⑴出顺序表中的元素printf「⑶输出顺序表的长度:3printff"(5)顺序链表插入元素:5printf(h请输入你的选择:”);scanf(”%d”,&n);switch(n)casel:PrintList_Sq(L);;break;case2:printf("删除指定的第i个元素:”);scanf(”%cT,&i);ListDelete_Sq(&L,i,&e);printff'删除元7、素大小为:%d"/e);;break;case3:ListLength_Sq(L);break;case4:Reverse_SeqList(&L);break;case5:printf("插入指定的第i个元素之前:”);scanf(”%d”,&i);printf(H插入元素大小为:“);scanf(”%d“,&e);Listlnsert_Sq(&L,i,e);break;case6:printff"即将退tBH);n=10;break;default:printf("输入错i^");n=10;break;}}return0;}代码二#incl8、ude"stdio.h"#include"malloc.h"#defineOK1#defineERROR0#
6、_Sq(&L,ize);}while(n!=10)(2)删除指定的第i个元素:2");(4)将顺序表逆置:4");(6)退出:6“);printf(“⑴出顺序表中的元素printf「⑶输出顺序表的长度:3printff"(5)顺序链表插入元素:5printf(h请输入你的选择:”);scanf(”%d”,&n);switch(n)casel:PrintList_Sq(L);;break;case2:printf("删除指定的第i个元素:”);scanf(”%cT,&i);ListDelete_Sq(&L,i,&e);printff'删除元
7、素大小为:%d"/e);;break;case3:ListLength_Sq(L);break;case4:Reverse_SeqList(&L);break;case5:printf("插入指定的第i个元素之前:”);scanf(”%d”,&i);printf(H插入元素大小为:“);scanf(”%d“,&e);Listlnsert_Sq(&L,i,e);break;case6:printff"即将退tBH);n=10;break;default:printf("输入错i^");n=10;break;}}return0;}代码二#incl
8、ude"stdio.h"#include"malloc.h"#defineOK1#defineERROR0#
此文档下载收益归作者所有