選課時間段: 周四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...