單鏈表實驗報告.doc

單鏈表實驗報告.doc

ID:56489885

大小:101.50 KB

頁數:7頁

時間:2020-06-25

單鏈表實驗報告.doc_第1頁
單鏈表實驗報告.doc_第2頁
單鏈表實驗報告.doc_第3頁
單鏈表實驗報告.doc_第4頁
單鏈表實驗報告.doc_第5頁
資源描述:

《單鏈表實驗報告.doc》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫

1、計算機與信息技術學院綜合性、設計性實驗報告專業(yè):網絡工程年級/班級:大二2016—2017學年第一學期課程名稱數據結構指導教師李四學號姓名16083240XX張三項目名稱單鏈表的基本操作實驗類型綜合性/設計性實驗時間2017.10.3實驗地點216機房一、實驗目的(1)熟悉順序表的創(chuàng)建、取值、查找、插入、刪除等算法,模塊化程序設計方法。二、實驗儀器或設備(1)硬件設備:CPU為Pentium4以上的計算機,內存2G以上(2)配置軟件:MicrosoftWindows7與VC++6.0三、總體設計(設計原理、設計方案及流程等)設計原理:

2、單鏈表屬于線性表,線性表的存儲結構的特點是:用一組任意存儲單元存儲線性表的數據元素,這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的。因此,對于某個元素來說,不僅需要存儲其本身的信息,還需要存儲一個指示其直接后繼的信息。設計方案:采用模塊化設計的方法,設計各個程序段,最終通過主函數實現各個程序段的功能。設計時,需要考慮用戶輸入非法數值,所以要在程序中寫入說可以處理非法數值的代碼。設計流程:1.引入所需的頭文件;2.定義狀態(tài)值;3.寫入順序表的各種操作的代碼;寫入主函數,分別調用各個函數。在調用函數時,采用if結構進行判斷輸入值是否非法,從而

3、執(zhí)行相應的程序四、實驗步驟(包括主要步驟、代碼分析等)#include//EOF(=^Z或F6),NULL#include//srand(),rand(),exit(n)#include//malloc(),alloc(),realloc()等#include//INT_MAX等#include#include#include//floor(),ceil(),abs()#include

4、h>//cout,cin#include//clock(),CLK_TCK,clock_t#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;//Status是函數的類型,//其值是函數結果狀態(tài)代碼,如OK等typedefintElemType;typedefstructLNode{ElemTypedata;//結點的數據域structLNode*next;//結點的指針

5、域}LNode,*LinkList;//LinkList為指向結構體LNode的指針類型//初始化單鏈表算法步驟:1.生成新結點作為頭結點,用頭指針L指向頭結點。2.頭結點的指針域置空。StatusInitList_L(LinkList&L){L=newLNode;//生成新結點作為頭結點,用頭指針L指向頭結點;L->next=NULL;//頭結點的指針域置空returnOK;}//單鏈表的取值算法步驟:1.用指針P指首元結點,用j做計數器初值賦為1.2.從首元結點開始依次順著鏈域next向下訪問,只要指向當前結點的指針p不為空(NU

6、LL),并且沒有到達序號為i的結點,則循環(huán)執(zhí)行以下操作:P指向下一結點;計數器j相應加1;3.退出循環(huán)時,如果指針p為空,或者計數器j大于i,說明指定的序號i值不合法(i大于表長n或i小于等于0),取值失敗返回ERROR,否則取值成功,此時j=i時,p所指的結點就是要找的第i個結點,用參數e保存當前結點的數據域,返回OK。StatusGetElem_L(LinkListL,inti,ElemType&e){LinkListp;intj;p=L->next;j=1;while(p&&jnext;++j;}if(!p

7、

8、

9、j>i)returnERROR;e=p->data;returnOK;}//單鏈表的按值查找算法步驟:1.用指針p指首元結點。2.從首元結點開始依次順著鏈域next向下查找,只要指向當前結點的指針p不為空,并且p所指結點的數據域不等于給定值e,則循環(huán)執(zhí)行以下操作:p指向下一個結點。3.返回p。若查找成功,p此時即為結點的地址值,若查找失敗,p的值即為NULL。intLocateElem_L(LinkListL,ElemTypee){LinkListp;intj;p=L->next;j=1;while(p&&p->data!=e){p=

10、p->next;j++;}if(p)returnj;elsereturn0;}//單鏈表的插入算法步驟:1.查找結點ai-1并由指針p指向該結點。2.生成一個新結點*s。3.將新結點*s的數據域置為e。4.將新結點*s的

當前文檔最多預覽五頁,下載文檔查看全文

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

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