資料結構實驗報告順序表

2021-03-04 06:58:08 字數 2703 閱讀 6906

選課時間段: 周四6、7、8、9

序號實驗報告

課程名稱: 資料結構

實驗名稱: 順序表的實現

指導教師

學生姓名

學生學號

實驗日期: 2023年4月11日

一、實驗目的

二、實驗內容

三、實驗步驟

1.需求分析

本演示程式用c語言編寫,完成順序表的生成,任意位置的插入、刪除,以及確定某一元素在順序表中的位置。

① 輸入的形式和輸入值的範圍:插入元素時需要輸入插入的位置和元素的值;刪除元素時輸入刪除元素的位置;查詢操作時需要輸入元素的值。在所有輸入中,元素的值都是整數。

② 輸出的形式:在所有三種操作中都顯示操作是否正確以及操作後順序表的內容。其中刪除操作後顯示刪除的元素的值,查詢操作後顯示要查詢元素的位置。

③ 程式所能達到的功能:完成順序表的生成(通過插入操作)、插入、刪除、查詢操作。

④ 測試資料:

a. 插入操作中依次輸入11,12,13,14,15,16,生成乙個順序表

b. 查詢操作中依次輸入12,15,22返回這3個元素在順序表中的位置

c. 刪除操作中依次輸入2,5,刪除位於2和5的元素

2.概要設計

1)為了實現上述程式功能,需要定義順序表的抽象資料型別:

adt linklist

資料關係:r=

基本操作:

initlinklist(&l)

操作結果:構造乙個空的順序表l.

inslinklist(&l,pos,e)

初始條件:順序表l已存在

操作結果:將元素e插入到順序表l的pos位置

dellinklist(&l,pos,&e)

初始條件:順序表l已存在

操作結果:將順序表l中pos位置的元素刪除,元素值置入e中返回

loclinklist(l,e)

初始條件:順序表l依存在

操作結果:順序表l中查詢是否元素e,若存在,返回元素在表中的位置;若不存

在,返回-1.

menu()

操作結果:在螢幕上顯示操作選單

}  2)本程式包含7個函式:

① 主函式main()

② 初始化順序表函式initlinklist()

③ 顯示操作選單函式menu()

④ 顯示順序表內容函式displinklist()

⑤ 插入元素函式inslinklist()

⑥ 刪除元素函式dellinklist()

⑦ 查詢元素函式loclinklist()

3.詳細設計

實現概要設計中定義的所有的資料型別,對每個操作給出c**演算法。對主程式和其他模組也都需要寫出c**演算法。

1) 結點型別和指標型別

2) 順序表的基本操作

bool initlinklist(linklist &l)

(c**演算法)

void displinklist(linklist l)

(c**演算法)

void menu()

(c**演算法)

bool inslinklist(linklist &l,int pos,int e)

(c**演算法)

bool dellinklist(linklist &l,int pos,int &e)

(c**演算法)

int loclinklist(linklist l,int e)

(c**演算法)

3) 其他模組c**演算法

4.使用說明

程式名為????????.exe,執行環境為dos。程式執行後顯示

0----exit

1----insert

2----delete

3----locate

select:

在select後輸入數字選擇執行不同的功能。要求首先輸入足夠多的插入元素,才可以進行其他的操作。每執行一次功能,就會顯示執行的結果(正確或錯誤)以及執行後順序表的內容。

選擇0:退出程式

選擇1:顯示「insert pos,e =」 ,

要求輸入要插入的位置和元素的值(都是整數)。

選擇2:顯示「delete pos =」 ,

要求輸入要刪除元素的位置,執行成功後返回元素的值。

選擇3:顯示「locate e = 」 ,

要求輸入要查詢元素的值,執行成功後返回元素在表中的位置

6.測試結果

1) 建立順序表:

選擇1,分別輸入(0,11),(0,12),(0,13),(0,14)(0,15)。得到順序表(15,14,13,12,11)

2) 插入:

選擇1輸入(1,100),得到順序表(15,100,14,13,12,11)

選擇1輸入(-1,2),顯示輸入錯誤

選擇1輸入(7,2),顯示輸入錯誤

選擇1輸入(6,2),得到順序表(15,100,14,13,12,11,2)

3) 刪除:

選擇2,輸入1。返回e=100,得到順序表(15,14,13,12,11,2)

選擇2,輸入0。返回e=15,得到順序表(14,13,12,11,2)

選擇2,輸入4。返回e=2,得到順序表(14,13,12,11)

選擇2,輸入5。返回輸入錯誤

4) 查詢

選擇3,輸入14。返回pos=0

選擇3,輸入100。返回輸入錯誤

四、實驗總結(結果分析和體會)

資料結構順序表實驗報告

系專業 2008級 01 班 姓名學號 2010年1 0月 9日 define maxsize 100 include include typedef int elemtype typedef struct sqlist void initlist sqlist l void creatsqlist...

資料結構 順序表的查詢實驗報告

電腦科學與技術系 實驗報告 專業名稱電腦科學與技術 課程名稱 資料結構 專案名稱順序表查詢 班級學號姓名 同組人員無 實驗日期 一 實驗目的與要求 簡述本次實驗要求達到的目的,涉及到的相關知識點,實驗的具體要求。一 實驗目的 應用順序表來實現對資料的查詢 二 實驗要求 用順序表實現對資料進行查詢 三...

資料結構之順序表操作實驗

實驗二 順序表的基本操作 a include include define list init size 100 define listincrement 10 typedef char elemtype typedef structsqlist void initlist sqlist l l l...