數(shù)據(jù)結(jié)構(gòu)實驗報告順序表和鏈表_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗報告順序表和鏈表_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗報告順序表和鏈表_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)實驗報告順序表和鏈表實驗報告課程名稱數(shù)據(jù)結(jié)構(gòu)實驗項目實驗一線性表的生成與操作題目一順序表和鏈表的創(chuàng)建與基本操作系 別計算機(jī)學(xué)院 專業(yè)計算機(jī)大類班級/學(xué)號_(1406/2021011288) 學(xué)生姓名 (孫文學(xué)) 實驗日期_ (2021年10月19日)成 績指導(dǎo)教師黃改娟實驗題目:實驗一線性表的生成與操作順序表和鏈表的創(chuàng)建與基本操作(自己所選擇實驗題目,必填)一、實驗?zāi)康?)掌握線性表的順序存儲和鏈?zhǔn)酱鎯Y(jié)構(gòu):2)驗證順序表及鏈表的基本操作的實 現(xiàn):(驗證)3)理解算法與程序的關(guān)系,能夠?qū)⑺惴ㄞD(zhuǎn)換為對應(yīng)程序;4)體會線性表在實際應(yīng) 用中能夠解決的問題。(設(shè)計、綜合)二、實驗內(nèi)容1)根據(jù)實

2、驗一題目列表,選定題目,說明題目的主要需求;2)結(jié)合所選定的題目,定義存儲結(jié)構(gòu),并完成對應(yīng)應(yīng)用的線性表創(chuàng)建、插入、刪除、查找等基本操作的算法描述;3)程序編碼實現(xiàn),并獲得運(yùn)行結(jié)果。三、報告內(nèi)容1)實驗題目及主要存儲結(jié)構(gòu)定義(提示:請根據(jù)所選定題目,描述存儲結(jié)構(gòu))題目:順序表和鏈表的創(chuàng)建及基本操 作順序表我是采用數(shù)組存儲的,鏈表是采用結(jié)構(gòu)體存儲的2)結(jié)合題目,說明對相應(yīng)線 性表的基本操作算法描述(提示:可用自然語言、流程圖、偽代碼等均可,要求對每一個操作,都給出具體的 算法描述)基本操作:#順序表#(1)插入:在線性表中的x位置插入y將x位置及之后的元素都往后挪一位,將y的值賦給ax.(2)刪除

3、:刪除位置為x的元素一一另y二ax,然后x之后的元素都往前挪一位。(3)查找:尋找值為y的元素一一從a0開始,若ai=y,則返回i,否則i+0 # 鏈表#(1)插入:當(dāng) 1小F要插入的位置X時,i+,插入p->datap->next=s->next;s->next=p;(2)刪除:當(dāng)p->data不等于要刪除的值x時,p=p->next;q=p->next; p->next=q->next; free (q);(3)查找:當(dāng)p->data!=x時,p=p_>next,找到之后返回p->data 3)程序源碼(提示:列出所編

4、寫程序的代碼。如果利用圖形界面IDE等編程,這里只要求寫出關(guān) 鍵操作的程序代碼。此外,程序一定要有注釋說明)1.順序表的基本操作(用數(shù)組實現(xiàn))#include #include int mainO int *a; int N, i, j, e, x;printf (、請輸入線性表長度N: scanf (a=(int *)malloc(N*sizeof (int) ; for(i=0;iprintf (初始順序表為:for (i=0; iprintf ('插入請輸 0,刪除請輸 1,查找輸入 2: scanf (if (x=0) printf( 請輸入插入位置 i 和數(shù) e: 插入 sc

5、anf (a=(int *)realloc(a, (N+l)*sizeof (int); for(j=N-l; j") aj+l=aEj; aiT=e; for (i=0; ielseif (x=l) /刪除 printf (、請輸入刪除位置 i:scanf (for(i;ielse if (x=2) /查找 printf (、請輸入查找位置 i :scanf (e=aiT; printf ( else ( printf(輸入錯 誤! free (a) ; "NULL; return 0; 2.單鏈表的基本操作 include include #define ERROR 0

6、 trdefine OK 1 typedef int status; typedef int ElemType; typedef struct Node ElemType data; struct Node *next; LNode, *LinkList; void Build(LinkList L)建立一個帶頭結(jié)點的單鏈表 int n; LinkList p, q; P=L; printf (、請輸入 n: n scanf ( printf (、請輸入 n 個數(shù)據(jù)元素:n while (n) q=(LinkList)malloc(sizeof(LNode); scanf( q->nex

7、t=NULL; p->next=q; P=q; void Print (LinkList L)/計算單鏈表的長度,然后輸出單鏈表 int num=0; LinkList p; p=L->next; while(p) num+; printf( p=p->next; printf (、長度為dn void Tips 0 printf (、按數(shù)字鍵選擇相應(yīng)操作nprintf (、輸出單鏈表及其長度:n printf (、刪除值為x的結(jié)點:n printf (、在第n個 位置插入值X:n printf ('查找值為X的位置n:n printf (、退出:n void Delete (LinkList L, int x)刪除值為 x 的結(jié)點 LinkList p, q; p=L; while ( p- >next &&p->next->data!=x) p=p->next;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論