資源描述:
《實(shí)驗(yàn)報(bào)告__線(xiàn)性表》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(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)名稱(chēng)線(xiàn)性表實(shí)驗(yàn)室實(shí)驗(yàn)日期參考學(xué)習(xí)...順序表的基本運(yùn)算一、實(shí)驗(yàn)?zāi)康?.掌握線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)(順序表)的含義與實(shí)現(xiàn)方法;2.熟練掌握線(xiàn)性表在順序存儲(chǔ)結(jié)構(gòu)上的插入、刪除、查找等操作。二、實(shí)驗(yàn)相關(guān)理論及內(nèi)容1.實(shí)驗(yàn)相關(guān)理論①線(xiàn)性表是最簡(jiǎn)單、最基本也是最常用的一種線(xiàn)性結(jié)構(gòu)。線(xiàn)性表有兩種存儲(chǔ)方法:順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。線(xiàn)性表的基本操作是插入、刪除和檢索等。②了解有關(guān)順序表的概念和性質(zhì);掌握線(xiàn)性表的基本操作的原理以及實(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四、實(shí)驗(yàn)步驟(必須包括代碼描述
3、)Ⅰ.插入元素在順序表的某個(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è)元素是否在順序表中,則可以利用順序查找的方法,從第一個(gè)元素開(kāi)始依次將元素關(guān)鍵字的值與
4、給定元素關(guān)鍵字的值進(jìn)行比較,若相等則返回該元素在順序表中的位置,若不相等則返回值為空。實(shí)現(xiàn)代碼⑴.順序表的初始化(構(gòu)造一個(gè)空表)SeqList*init_SeqList()參考學(xué)習(xí)...{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(SeqList*L,inti,datatypex){intj;i
5、f(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)算參考學(xué)習(xí)...intDelete_SeqList(SeqList*L,inti){intj;if(i<1
8、
9、i>(L->last+1)){pri
10、ntf("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ò)誤提示,原因,如何解決等)參考學(xué)習(xí)...參考學(xué)習(xí)...一、實(shí)驗(yàn)總結(jié)參考學(xué)習(xí)...上機(jī)實(shí)驗(yàn)創(chuàng)建了一個(gè)順序表,并且熟練的掌握了線(xiàn)性存儲(chǔ)結(jié)構(gòu)的完成了在順序表上的插入元素,刪除元素,按值查找。通過(guò)元素的存儲(chǔ)順序反映線(xiàn)性表中數(shù)據(jù)元素之間的邏輯關(guān)系;可隨機(jī)存取順序表的元素;順序表的插入、刪除操作
11、要通過(guò)移動(dòng)元素實(shí)現(xiàn)。七、代碼清單#includetypedefstruct{chars[10];intlast;}Seqlist;voidinitlist(Seqlist*l)//初始化線(xiàn)性表{l->last=(-1);}voidcreat(Seqlist*l)//創(chuàng)建線(xiàn)性表{charch;ch=getchar();while(ch!='#'){l->last=l->last+1;l->s[l->last]=ch;ch=getchar();}}voidlocatdisply(Seqlist*l,intn)//輸出指定位置的元素{in
12、tlog=0;while(log!=n&&loglast){log++;}printf("%c"