一..實驗目的
鞏固線性表的資料結構,學會線性表的應用。
1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。
2.學習運用線性表的知識來解決實際問題。
3.進一步鞏固程式除錯方法。
4.進一步鞏固模板程式設計。
二、實驗內容
建立乙個n個學生成績的順序表,對錶進行插入、刪除、查詢等操作。分別輸出結果。
要求如下:
1)用順序表來實現。
2)用單鏈表來實現。
用順序表儲存學生成績
標頭檔案 seqlist.h
const int maxsize=30;
templateclass seqlist
seqlist(t a,int n);
~seqlist(){}
int length() //求線性表的長度
t get(int i); //按位查詢,查詢第i個元素
int locate(t x); //按值查詢,查詢值為x的元素序號
void insert(int i,t x); //在第i個位置插入值為x的元素
t delete(int i); //刪除第i個元素
void printlist(); //遍歷操作,按序號一次輸出元素
private:
t data[maxsize]; //存放資料元素的陣列
int length;
};
seqlist.cpp
#include"seqlist.h"
#includetemplateseqlist::seqlist(t a,int n)
templatet seqlist::delete(int i) //刪除
templateint seqlist::locate(t x) //按值查詢
; seqlistscorelist(score,5);
cout<<"原始資料為:";
scorelist.printlist();
cout<
用單鏈表儲存學生成績
#includeusing namespace std;
templatestruct node
;templateclass linklist
;templatelinklist::linklist()
templatelinklist::linklist(datatype a,int n)
r->next=null;
}templatelinklist::~linklist()
}templatevoid linklist::insert(int i,datatype x)
if(p==null)throw"位置";
else }
templatedatatype linklist::delete(int i)
if(p==null||p->next==null)
throw"位置";
else }
templateint linklist::locate(datatype x)
return 0;
}templatevoid linklist< datatype>::printlist()
coutcout<<"鍊錶資料為:"<
順序表和單鏈表的儲存結構的比較:
順序表是在邏輯和物理儲存位置上相鄰,用陣列儲存資料,順序表的空間長度預先分配;
單鏈表的邏輯次序和物理次序不一定相同,元素之間的邏輯關係用指標表示。單鏈表的儲存空間是動態儲存的。
順序表的方法比較簡單,容易實現,但是進行插入,刪除等操作時不方便,所佔記憶體較大;
而單鏈表插入和刪除方便,但是儲存密度較低,不能隨機訪問。
《資料結構》實驗二 線性表實驗
一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4週第2次課。2個學時。三 實驗...
《資料結構》實驗二 線性表實驗
資料結構 實驗二 線性表實驗 一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.建立乙個 n個學生成績的順序表,對錶進行插入...
《資料結構》實驗二 線性表實驗
資料結構 實驗二 線性表實驗 一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4...