實驗一 線性表的基本操作實現及其應用 C

2021-08-08 11:56:47 字數 2955 閱讀 1386

實驗一線性表的基本操作實現及其應用

一、實驗目的

1、熟練掌握線性表的結構特點,掌握順序表的基本操作。

2、鞏固 c++相關的程式設計方法與技術。

3、學會使用順序表解決實際問題。

二、實驗內容

順序表的建立與操作實現建立

n 個元素的順序表(

n 入,刪除,查詢等功能。編寫完整程式實現,程式語言不限定,使用技術形式不定。

三、實驗步驟

1、 程式簡介:

將線性表的抽象資料型別定義在順序表儲存結構下用c++的類實現。線性表的資料元素型別不確定,所以採用了c++的模板機制。模板部分包括了構造部分、求線性表長度、查詢操作、插入操作、刪除操作和遍歷操作。      

(1)構造模板:無參建構函式建立乙個空的順序表,有參建構函式建立乙個長度為n的順序表。

(2)查詢操作:

①按位查詢,順序表中第i個元素儲存在陣列中下標為i-1的位置。

②按值查詢,對順序表中元素依次進行比較,如果查詢成功則返回元素序號;若不成功,返回查詢失敗標準「0」。 

(3)插入操作:偽**

①如果表滿了,則丟擲位置異常;

②如果元素插入位置不合理,則丟擲位置異常;

③將最後乙個元素直至第i個元素分別向後移動乙個位置;

④將元素x填入位置i處;

⑤表長加1;

(4)刪除操作:偽**

①如果表空,則丟擲下溢異常;

②如果刪除位置不合理,則丟擲刪除位置異常;

③取出被刪元素;

④將下標為i,i+1,...,n-1處元素分別移到下標i-1,i,...,n-2處;

⑤表長減1,返回被刪元素值;

(5)主函式:採用switch語句來選擇操作的功能。

3、完整程式;

#include

using namespace std;

const int maxsize=100;

template

//定義模板類seqlist

class seqlist

//建立空的順序表

seqlist(datatype a,int n); //建立長度為n順序表

~seqlist(){}

int length() //求長度

datatype get(int i); //按位查詢,第i個

int locate(datatype x); //按值查詢。值為x的序號

void insert (int i,datatype x); //插入

datatype delete(int i); //刪除

void printlist(); //輸出

private:

datatype data[maxsize]; //存放資料元素的陣列

int length; //線性表長度

};template

seqlist

::seqlist(datatype a,int n) //求長度

template

int seqlist

::locate(datatype x) //按值查詢。值為x的序號 template

datatype seqlist

::delete(int i) //刪除 { datatype x,j; if(length==0)throw"下溢"; if(i<1||i>length)throw"位置"; x=data[i-1]; for(j=i;j

void seqlist

::printlist() //輸出 { datatype i; for(i=0;i

list(d,5); int x,n,loc,len; while(1) { cout<

<

>x; cout<

>loc; n=list.get(loc); cout<

<

>n; loc=list.locate(n); cout<

<

>loc; cout<>n; list.insert(loc,n); cout<

>loc; cout<

<

4、總結、執行結果和分析。

執行結果如下                          :

求順序表的表長

按位查詢,按值查詢

插入元素

刪除元素

輸出順序表

5、總體收穫和不足,疑問等。

收穫:在模板中的資料型別都必須與所定義的模板型別相同,不能自定義。在模板的呼叫中,要注意形參,不要弄混。

不足:仍然對模板不夠熟練。會出現一些細節上的錯誤。

實驗一線性表的基本操作實現及其應用

一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 1 順序表的建立與操作實現 建立 n 個元素的順序表 n 的大小和表裡資料自己確定 實現相關的操作 輸出,插 入,刪除,查詢等功能。編寫完整程式實現...

實驗一線性表的基本操作實現及其應用

一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 三 實驗步驟 1 建立乙個模板類 2 建構函式建立列表,length,get,locate,insert,delete,printlist函式 3 ...

實驗一線性表的基本操作實現及其應用

順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素,我打算借鑑書本用c 寫乙個小順序表記錄10個人的數學成績。源 標頭檔案 include includeusing namespace std 定義模板類seqlist const int maxsize 20 templateclass se...