實(shí)驗(yàn)報(bào)告線 性表

實(shí)驗(yàn)報(bào)告線 性表

ID:44362918

大小:116.00 KB

頁(yè)數(shù):14頁(yè)

時(shí)間:2019-10-21

實(shí)驗(yàn)報(bào)告線 性表_第1頁(yè)
實(shí)驗(yàn)報(bào)告線 性表_第2頁(yè)
實(shí)驗(yàn)報(bào)告線 性表_第3頁(yè)
實(shí)驗(yàn)報(bào)告線 性表_第4頁(yè)
實(shí)驗(yàn)報(bào)告線 性表_第5頁(yè)
資源描述:

《實(shí)驗(yàn)報(bào)告線 性表》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、姓名王倩學(xué)號(hào)1104180204班級(jí)計(jì)科1102年級(jí)1102級(jí)指導(dǎo)教師李翠西安財(cái)經(jīng)學(xué)院信息學(xué)院《算法與數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱線性表實(shí)驗(yàn)室實(shí)驗(yàn)日期第13頁(yè)順序表的基本運(yùn)算一、實(shí)驗(yàn)?zāi)康?.掌握線性表的順序存儲(chǔ)結(jié)構(gòu)(順序表)的含義與實(shí)現(xiàn)方法;2.熟練掌握線性表在順序存儲(chǔ)結(jié)構(gòu)上的插入、刪除、查找等操作。二、實(shí)驗(yàn)相關(guān)理論及內(nèi)容1.實(shí)驗(yàn)相關(guān)理論①線性表是最簡(jiǎn)單、最基本也是最常用的一種線性結(jié)構(gòu)。線性表有兩種存儲(chǔ)方法:順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。線性表的基本操作是插入、刪除和檢索等。②了解有關(guān)順序表的概念和性質(zhì);掌握線性表的基本操作的原理以及實(shí)現(xiàn)其的

2、算法。2.實(shí)驗(yàn)內(nèi)容編寫(xiě)實(shí)現(xiàn)順序表的基本算法(初始化、查找、插入、刪除等)的函數(shù),并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序完成如下功能:⑴初始化順序表L;⑵建立順序表L,如(a,b,c,d,c);⑶輸出順序表L的長(zhǎng)度;⑷輸出順序表L的第i個(gè)元素,如第3個(gè)元素;⑸輸出給定元素的位置,如輸出元素a的位置;⑹在第i個(gè)元素前插入給定元素,如在第4個(gè)元素前插入元素f;⑺刪除順序表L的第i個(gè)元素,如刪除順序表L的第3個(gè)元素。注:最好編寫(xiě)輸出順序表L的函數(shù)供主程序調(diào)用,以檢驗(yàn)⑵⑹⑺操作是否成功。三、實(shí)驗(yàn)環(huán)境WindowsXP2007,VisualC++6.0四

3、、實(shí)驗(yàn)步驟(必須包括代碼描述)Ⅰ.插入元素在順序表的某個(gè)位置,首先是要查看該位置是否合理,假如順序表中有n個(gè)元素,要插入元素在第i個(gè)位置,那么插入的位置i應(yīng)當(dāng)在第1與第n+1個(gè)元素位置之間,然后利用插入算法,將第n個(gè)元素一直到原第i個(gè)元素依次后移,騰出一個(gè)空位,將新數(shù)據(jù)插入在該位置,最后將順序表的表長(zhǎng)加1;Ⅱ.刪除順序表中的元素,首先仍然要判斷要?jiǎng)h除元素是否在順序表的合理位置,若是合理位置,則將包括該元素在內(nèi)的后面所有元素依次向前前移,直接用后繼覆蓋直接前驅(qū),最后將順序表的表長(zhǎng)減1;Ⅲ.查找某個(gè)元素是否在順序表中,則可以利用順序查

4、找的方法,從第一個(gè)元素開(kāi)始依次將元素關(guān)鍵字的值與給定元素關(guān)鍵字的值進(jìn)行比較,若相等則返回該元素在順序表中的位置,若不相等則返回值為空。實(shí)現(xiàn)代碼⑴.順序表的初始化(構(gòu)造一個(gè)空表)SeqList*init_SeqList()第13頁(yè){SeqList*L;L=(SeqList*)malloc(sizeof(SeqList));L->last=-1;returnL;}設(shè)調(diào)用函數(shù)為主函數(shù)。主函數(shù)對(duì)初始化函數(shù)的調(diào)用如下:main(){SeqList*L;L=init_SeqList();…}(2)插入運(yùn)算intInsert_SeqList(S

5、eqList*L,inti,datatypex){intj;if(L->last==MAXSIZE-1){printf("tableisfull!");return(-1);}if(i<1

6、

7、i>(L->last+2)){printf("placeiswrong!");return(0);}for(j=L->last;j>=i-1;j--)L->data[j+1]=L->data[j];L->data[i-1]=x;L->last++;return(1);}⑶.刪除運(yùn)算第13頁(yè)intDelete_SeqList(SeqList*L

8、,inti){intj;if(i<1

9、

10、i>(L->last+1)){printf("thiselementdon'texist!");return(0);}for(j=i;j<=L->last;j++)L->data[j-1]=L->data[j];L->last--;return(1);}然后依次輸出計(jì)算結(jié)果。一、實(shí)驗(yàn)數(shù)據(jù)記錄及分析(可包括錯(cuò)誤提示,原因,如何解決等)第13頁(yè)第13頁(yè)一、實(shí)驗(yàn)總結(jié)上機(jī)實(shí)驗(yàn)創(chuàng)建了一個(gè)順序表,并且熟練的掌握了線性存儲(chǔ)結(jié)構(gòu)的完成了在順序表上的插入元素,刪除元素,按值查找。通過(guò)元素的存儲(chǔ)順序反映線性表中

11、數(shù)據(jù)元素之間的邏輯關(guān)系;第13頁(yè)可隨機(jī)存取順序表的元素;順序表的插入、刪除操作要通過(guò)移動(dòng)元素實(shí)現(xiàn)。七、代碼清單#includetypedefstruct{chars[10];intlast;}Seqlist;voidinitlist(Seqlist*l)//初始化線性表{l->last=(-1);}voidcreat(Seqlist*l)//創(chuàng)建線性表{charch;ch=getchar();while(ch!='#'){l->last=l->last+1;l->s[l->last]=ch;ch=getchar(

12、);}}voidlocatdisply(Seqlist*l,intn)//輸出指定位置的元素{intlog=0;while(log!=n&&loglast){log++;}printf("%c",l->s[log]);}voiddisl

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。