線性表的基本操作

線性表的基本操作

ID:10648633

大?。?92.50 KB

頁數(shù):12頁

時間:2018-07-07

線性表的基本操作_第1頁
線性表的基本操作_第2頁
線性表的基本操作_第3頁
線性表的基本操作_第4頁
線性表的基本操作_第5頁
資源描述:

《線性表的基本操作》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、實驗報告實驗類型__綜合設(shè)計__實驗室_軟件實驗室三__一、實驗題目線性表的基本操作二、實驗?zāi)康暮鸵?)掌握線性表的特點2)掌握線性表的順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的基本運算及應(yīng)用。3)盡可能考慮算法的健壯性4)實驗報告中要寫出測試數(shù)據(jù)、錯誤分析以及收獲。三、需求分析本演示程序用c++6.0編寫,完成單鏈表和順序表的生成,任意位置的插入、刪除,以及確定某一元素在單鏈表中的位置。1、輸入的形式和輸入值的范圍:插入元素時需要輸入插入的位置和元素的值;刪除元素時輸入刪除元素的位置;查找操作時需要輸入元

2、素的值。在所有輸入中,元素的值都是整數(shù)2、輸出的形式:在所有三種操作中都顯示操作是否正確以及操作后單鏈表的內(nèi)容。其中刪除操作后顯示刪除的元素的值,查找操作后顯示要查找元素的位置3、程序所能達(dá)到的功能:完成能完成兩種存儲結(jié)構(gòu)的基本運算以及二級菜單的運用4、測試數(shù)據(jù)1)輸入1,建立一個順序表鏈2)插入操作中依次輸入,1,2,3,4,生成一個單鏈表3)查找操作中依次輸入,2,返回這個元素在單鏈表中的位置4)刪除操作中依次輸入2,刪除位于2的元素5)輸入2,建立一個鏈表表,再做類似上述數(shù)據(jù)測試四、概要設(shè)

3、計為了實現(xiàn)上述程序功能,需要定義1、單鏈表的抽象類型如下:?ADTLinkList{   數(shù)據(jù)對象:D={ai

4、ai∈IntegerSet,i=0,1,2,…,n,n≥0}   數(shù)據(jù)關(guān)系:R={

5、ai,ai+1∈D}   基本操作:   CreateList_L1(&L)   操作結(jié)果:構(gòu)造一個空的單鏈表L. ListInsert_L1(&L,i,e)  初始條件:單鏈表L已存在操作結(jié)果:將元素e插入到單鏈表L的第i位置前ListInsert_L2(&L,i,e)  初始條件:

6、單鏈表L已存在  操作結(jié)果:將元素e插入到單鏈表L的第i位置后ListDelte_L(&L,i)  初始條件:單鏈表L已存在  操作結(jié)果:將單鏈表L中i位置的元素刪除  GetElem_L(L,i)  初始條件:單鏈表L依存在  操作結(jié)果:單鏈表L中查找第i個元素并返回其元素length_l(&L)初始條件:單鏈表L已存在  操作結(jié)果:將單鏈表L的長度值返回 }2、順序表的抽象數(shù)據(jù)類型 ADTlist{   數(shù)據(jù)對象:D={ai

7、ai∈ElemSet,i=0,1,2,…,n,n≥0}   數(shù)據(jù)關(guān)

8、系:R={

9、ai,ai+1∈D}   基本操作:   Initlist_Sq(&L)   操作結(jié)果:構(gòu)造一個空的順序表L. ListInsert_Sq(&L,i,e)  初始條件:順序表L已存在操作結(jié)果:將元素e插入到順序表L的第i位置ListDelete_Sq(&L,i,&e)  初始條件:順序表L已存在  操作結(jié)果:將順序表L中i位置的元素刪除,元素值置入e中返回  locate_Sq(L,e)  初始條件:順序表L依存在  操作結(jié)果:順序表L中查找元素e并返回其位置 } 

10、3、本程序包含三個模塊1)主程序模塊:協(xié)調(diào)各函數(shù)的調(diào)用,實現(xiàn)所要求的功能;2)順序表模塊:實現(xiàn)線性表順序存儲后的基本操作;3)單鏈表模塊:實現(xiàn)線性表鏈?zhǔn)酱鎯蟮幕静僮鳌?、各模塊之間的調(diào)用關(guān)系如下:主程序模塊順序表模塊單鏈表模塊四、詳細(xì)設(shè)計1、順序表的元素類型typedefstruct{int*elem;intlength;intlistsize;}SqList;2、順序表的基本操作intInitlist_Sq(SqList*L)//構(gòu)造一個新的線性表//如果沒有開辟成功返回錯誤voidLis

11、tInsert_Sq(SqList*L,inti,inte)//在第i個位置插入元素evoidlistshow_Sq(SqList*L)//輸出順序表元素intlocate_Sq(SqList*L,inte)//查找元素e,并返回其位置intListDelete_Sq(SqList*L,inti,int*e)//刪除第i個位置上的元素,并返回其元素其中部分操作的偽碼算法如下:intListDelete_Sq(SqList*L,inti,int*e)//刪除第i個位置上的元素,并返回其元素{int

12、j;if((i<1)

13、

14、(i>L->length))returnERROR;*e=L->elem[i-1];j=i-1;while(jlength){L->elem[j]=L->elem[j+1];j++;}L->length--;}3、單鏈表的元素類型,結(jié)點類型和指針類型typedefstructLNode{intdate;structLNode*next;}LNode,*LinkList;4、單鏈表的基本操作voidCreateList_L1(LNode*l)//初始化鏈表intLi

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

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

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