實驗一線性表的基本操作實現及其應用
一、實驗目的
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...