實驗報告一 順序表的操作_第1頁
實驗報告一 順序表的操作_第2頁
實驗報告一 順序表的操作_第3頁
實驗報告一 順序表的操作_第4頁
實驗報告一 順序表的操作_第5頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)實驗報告一系別: 班級: 學號: 姓名: 日期: 指導教師: 一、上機實驗的問題和要求:順序表的查找、插入與刪除。設(shè)計算法,實現(xiàn)線性結(jié)構(gòu)上的順序表的產(chǎn)生以及元素的查找、插入與刪除。具體實現(xiàn)要求:從鍵盤輸入10個整數(shù),產(chǎn)生順序表,并輸入結(jié)點值。從鍵盤輸入1個整數(shù),在順序表中查找該結(jié)點的位置。若找到,輸出結(jié)點的位置;若找不到,則顯示“找不到”。從鍵盤輸入2個整數(shù),一個表示欲插入的位置i,另一個表示欲插入的數(shù)值x,將x插入在對應位置上,輸出順序表所有結(jié)點值,觀察輸出結(jié)果。從鍵盤輸入1個整數(shù),表示欲刪除結(jié)點的位置,輸出順序表所有結(jié)點值,觀察輸出結(jié)果。二、程序設(shè)計的基本思想,原理和算法描述:(包

2、括程序的結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),輸入/輸出設(shè)計,符號名說明等)三、源程序及注釋:#include /*順序表的定義:*/#define ListSize 100/*表空間大小可根據(jù)實際需要而定,這里假設(shè)為100*/typedef int DataType;/*DataType可以是任何相應的數(shù)據(jù)類型如int, float或char*/typedef structDataType dataListSize;/*向量data用于存放表結(jié)點*/int length;/*當前的表長度*/SeqList;/*子函數(shù)的聲明*/void CreateList(SeqList * L,int n); /*創(chuàng)建順序表函

3、數(shù)*/int LocateList(SeqList L,DataType x); /*查找順序表*/void InsertList(SeqList * L,DataType x,int i); /*在順序表中插入結(jié)點x*/void DeleteList(SeqList * L,int i);/*在順序表中刪除第i個結(jié)點*/void PrintList(SeqList L,int n); /*打印順序表中前n個結(jié)點*/void main()SeqList L;int n=10,x,i;/*欲建立的順序表長度*/L.length=0;/*調(diào)用創(chuàng)建線性表函數(shù)*/printf(create funct

4、ion:n);CreateList(&L,n);/*建立順序表*/PrintList(L,n);/*打印順序表*/ /*調(diào)用查找函數(shù)*/ printf(search function:n); printf(input the data you want to search:); scanf(%d,&x); i=LocateList(L,x); /*順序表查找*/ if (i=0) printf(sorry,dont find %d!nn,x); else printf(i have find the %d,it locate in %d!nn,x,i);/*調(diào)用插入函數(shù)*/ printf(In

5、sert function:n); printf(輸入要插入的位置:(input the position:);scanf(%d,&i);printf(輸入要插入的元素:(input the data:);scanf(%d,&x);InsertList(&L,x,i);/*順序表插入 */PrintList(L,n);/*打印順序表 */*調(diào)用刪除函數(shù)*/printf(delete function:n); printf(輸入要刪除的位置:(input the position:);scanf(%d,&i);DeleteList(&L,i);/*順序表刪除 */PrintList(L,n);/

6、*打印順序表 */*順序表的建立:*/void CreateList(SeqList *L,int n)int i;for (i=0;in;i+) printf(ninput the %d data:,i+1); scanf(%d,&(*L).datai); (*L).length=n;/*順序表的查找:*/int LocateList(SeqList L,DataType x) int i=0; while (iL.length&x!=L.datai) +i; if (iL.length) return i+1; else return 0;/*順序表的插入:*/void InsertLis

7、t(SeqList *L,DataType x,int i)/*將新結(jié)點x插入L所指的順序表的第i個結(jié)點的位置上 */int j;if (i(*L).length)printf(插入位置非法);exit(0);if (*L).length=ListSize)printf(表空間溢出,退出運行);exit(0);for (j=(*L).length-1;j=i-1;j-)(*L).dataj+1=(*L).dataj; /*順序表元素從后向前依次后移*/ (*L).datai-1=x; /*將x插入第i個結(jié)點位置*/ (*L).length+; /*表長自增1*/*順序表的刪除:*/void DeleteList(SeqList *L,int i)/*從L所指的順序表中刪除第i個結(jié)點 */int j;if (i(*L).length)printf(刪除位置非法);exit(0);for (j=i;j=(*L).length-1;j+)(*L).dataj=(*L).dataj+1; /*順序表自第i個結(jié)點開始,依次前移*/ (*L).length-; /*表長自減1*/*順序表的打印:*/void PrintList(SeqList L,int n)int i; printf(the sequal list data is:);for

溫馨提示

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

評論

0/150

提交評論