資源描述:
《線性表的基本操作實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、......實(shí)驗(yàn)一:線性表的基本操作【實(shí)驗(yàn)?zāi)康摹繉W(xué)習(xí)掌握線性表的順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的設(shè)計(jì)與操作。對(duì)順序表建立、插入、刪除的基本操作,對(duì)單鏈表建立、插入、刪除的基本操作算法。【實(shí)驗(yàn)內(nèi)容】1.順序表的實(shí)踐1)建立4個(gè)元素的順序表s=sqlist[]={1,2,3,4,5},實(shí)現(xiàn)順序表建立的基本操作。2)在sqlist[]={1,2,3,4,5}的元素4和5之間插入一個(gè)元素9,實(shí)現(xiàn)順序表插入的基本操作。3)在sqlist[]={1,2,3,4,9,5}中刪除指定位置(i=5)上的元素9,實(shí)現(xiàn)順序表的刪除的基本操作。2.單鏈表的實(shí)踐3.1)建立一個(gè)包括頭結(jié)點(diǎn)和4個(gè)
2、結(jié)點(diǎn)的(5,4,2,1)的單鏈表,實(shí)現(xiàn)單鏈表建立的基本操作。2)將該單鏈表的所有元素顯示出來。3)在已建好的單鏈表中的指定位置(i=3)插入一個(gè)結(jié)點(diǎn)3,實(shí)現(xiàn)單鏈表插入的基本操作。4)在一個(gè)包括頭結(jié)點(diǎn)和5個(gè)結(jié)點(diǎn)的(5,4,3,2,1)的單鏈表的指定位置(如i=2)刪除一個(gè)結(jié)點(diǎn),實(shí)現(xiàn)單鏈表刪除的基本操作。5)實(shí)現(xiàn)單鏈表的求表長(zhǎng)操作。.專業(yè)資料可編輯.......【實(shí)驗(yàn)步驟】1.打開VC++。2.建立工程:點(diǎn)File->New,選Project標(biāo)簽,在列表中選Win32ConsoleApplication,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)OK->finish。
3、至此工程建立完畢。3.創(chuàng)建源文件或頭文件:點(diǎn)File->New,選File標(biāo)簽,在列表里選C++SourceFile。給文件起好名字,選好路徑,點(diǎn)OK。至此一個(gè)源文件就被添加到了剛創(chuàng)建的工程之中。4.寫好代碼5.編譯->鏈接->調(diào)試1、#include"stdio.h"#include"malloc.h"#defineOK1#defineOVERFLOW-2#defineERROR0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefintElemType;typedefintStatus;typedefstr
4、uct{ElemType*elem;intlength;.專業(yè)資料可編輯.......intlistsize;}SqList;StatusInitList(SqList&L){inti,n;L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)return(OVERFLOW);printf("輸入元素的個(gè)數(shù):");scanf("%d",&n);printf("輸入各元素的值:");for(i=0;i5、.listsize=LIST_INIT_SIZE;returnOK;}StatusListInsert(SqList&L,inti,ElemTypee){ElemType*newbase,*p,*q;if(i<1
6、
7、i>L.length+1)returnERROR;if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)return(OVERFLOW);.專業(yè)資料可編輯.......L.el
8、em=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;returnOK;}StatusListDelete(SqList&L,inti,ElemType&e){ElemType*p,*q;if((i<1)
9、
10、(i>L.length))returnERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p)*(p-1)
11、=*p;--L.length;returnOK;}voidVisitList(SqListL){inti;.專業(yè)資料可編輯.......for(i=0;i12、("%d"