1、實驗目的
學習線性表的順序儲存結構,掌握線性表的建立,查詢,插入,刪除和輸出等基本操作。
2、實驗內容
用c++的模板機制來實現線性表的基本操作
學習掌握線性表的順序儲存結構、鏈式儲存結構的設計與操作。對順序表建立、
插入、刪除的基本操作,對單鏈表建立、插入、刪除的基本操作演算法。
3、實驗中用到的資料型別的定義:抽象資料型別
在程式中,定義了乙個類模板 template,在該類中有 datatype data[maxsize] 和length兩個私有成員,分別表示該類中存放資料元素的陣列和線性表的長度;定義了建構函式seqlist()和析構函式~seqlist(),還有對列表進行求線性表的長度、輸出、查詢、插入以及刪除等操作的函式。
4、相關操作的演算法表達
(1)順序表有參建構函式seqlist
template
seqlist::seqlist(datatype a,int n)
(2)順序表按位查詢演算法get
template //按位查詢
datatype seqlist::get( int i)
(3)順序表按值查詢演算法locate
template //按值查詢
int seqlist::locate(datatype x)
(4)順序表插入演算法insert
template
void seqlist::insert(int i,datatype x)
(5)順序表刪除演算法delete
template
datatype seqlist::delete(int i)
(6)順序表遍歷演算法printlist
template
void seqlist::printlist()
//建立空的順序表
seqlist(datatype a,int n); //建立長度為n的順序表
~seqlist(){} //建立析構函式
int length() //求線性表的長度
datatype get( int i); //按位置查詢
int locate(datatype x); //按值查詢
void insert(int i,datatype x); //在位置i插入x
datatype delete(int i); //刪除
void printlist(); //輸出
private:
datatype data[maxsize]; //存放資料元素的陣列
int length; //線性表的長度
};template
seqlist::seqlist(datatype a,int n)
template //按位查詢
datatype seqlist::get( int i)
template //按值查詢
int seqlist::locate(datatype x)
template
void seqlist::insert(int i,datatype x)
template
datatype seqlist::delete(int i)
template
void seqlist::printlist()
;int flag,i,x,t,l;
flag=0;
seqlistlist(a,10);
while(flag==0)
default:}}
return 0;}
6、總結、執行結果和分析
在主函式中,建立乙個長度為10的陣列
當程式執行時,出現主選單,可以根據主選單的數字選擇相應的功能。
輸入「1」,輸出線性表的長度
輸入「2」,系統提示「請輸入要查詢的位置」,如果位置輸入正確,會輸出該位置的內容。
如果位置輸入錯誤,會跳出提示框。
輸入「3」,提示「請輸入要查詢的數」,如果查詢成功,返回元素的序號,如果查詢失敗,返回「0」。
如果插入的位置不合理,會跳出提示框。
5、輸入「5」,選擇想要刪除的位置。
6、輸入「6」,依次輸出線性表的元素值
7、輸入「7」,輸出主選單
8、輸入「8」,退出程式
7、總結與不足
在一開始看到老師給的任務時,內心是茫然的,之前學過的c語言和c++都忘得差不多了,連類模板是怎麼用的也忘了。完全不知道要怎麼入手,於是又回去看c++的書,發現自己的基礎真的是掌握得不好,學了跟沒學一樣,十分慚愧。然後開始敲**,先是將參照書上將各個函式敲下來,結果不知道為什麼編譯過後在鏈結(build)那裡一直出錯,問了舍友發現她們的並沒有出現這種情況,於是又換了個程式設計軟體dev c++,結果可能因為電腦問題無法使用,於是卸了vc6.0再重下,再試了幾遍後突然沒問題了,就又繼續奮鬥了。雖然勉勉強強程式可以執行,但還是有些地方並不怎麼明白,比如說在按位查詢時,雖然當輸入錯誤的時候會有跳出乙個提示框,但是並不知道那跟程式裡面的 throw 是不是一樣的······總而言之,基礎不紮實,仍需多多努力。
實驗一 線性表的基本操作
一 線性結構的順序表基本操作 實驗目的 1.學會定義單鏈表的結點型別 線性表的順序儲存型別,實現c程式的基本結構,對線性表的一些基本操作和具體的函式定義。2.掌握順序表的基本操作,實現順序表的插入 刪除 查詢以及求並集等運算。3.掌握對多函式程式的輸入 編輯 除錯和執行過程。實驗要求 1 預習c語言...
實驗一線性表的基本操作實現及其應用
一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 1 順序表的建立與操作實現 建立 n 個元素的順序表 n 的大小和表裡資料自己確定 實現相關的操作 輸出,插 入,刪除,查詢等功能。編寫完整程式實現...
實驗一線性表的基本操作實現及其應用
一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 三 實驗步驟 1 建立乙個模板類 2 建構函式建立列表,length,get,locate,insert,delete,printlist函式 3 ...