實驗一 線性表的基本操作實現

2021-08-08 09:24:42 字數 3334 閱讀 5455

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 ...