.建立乙個n個學生成績的順序表,對錶進行插入、刪除、查詢等操作。分別輸出結果。
要求如下:
1)用順序表來實現。
2)用單鏈表來實現。
(1)順序表
①標頭檔案seqlist建立
②源程式檔案seqlist.cpp建立#ifndef seqlist_h
#define seqlist_h
const int maxsize = 60;
class seqlist
seqlist(int a,int n);
~seqlist()
int length()
int get(int i);
int locate(int x);
void insert(int i,int x);
delete(int i);
void printlist();
private:
int data[maxsize];
int length;
int i,j,x;
};#endif
②源程式檔案linklist.cpp#include using namespace std;
#include "seqlist.h"
seqlist::seqlist(int a,int n)
int seqlist::get(int i)
int seqlist::locate(int x)
void seqlist::insert(int i,int x)
int seqlist::delete(int i)
void seqlist::printlist()
; seqlist l(gradelist,10);
cout<
執行結果
可見程式執行存在缺陷,如值為98的元素只能找到位置3而不能找到位置7,還有插入操作後最後乙個資料丟失的問題。
(2)單鏈表
①標頭檔案linklist.h的建立
#ifndef linklist_h
#define linklist_h
template struct node
;template class linklist
;#endif
#includeusing namespace std;
#include "linklist.h"
template linklist::linklist()
template linklist::linklist(dt a,int n)
r -> next = null;
}template linklist::~linklist() }
template void linklist::insert(int i, dt x)
if(p == null)
throw "位置";
else }
template dt linklist::delete(int i)
if(p == null||p -> next == null)
throw"位置";
else }
template int linklist::locate(dt x)
return 0;
}template void linklist::printlist()
cout<
③源程式檔案linklist_main.cpp的建立
#include using namespace std;
#include "linklist.cpp"
void main()
; linklistl(gradelist,10);
cout<
執行結果
這次插入和刪除操作沒有問題,但是值為78的成績依然只能找到乙個而不能找到第二個,望老師解答。
《資料結構》實驗二 線性表實驗
一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4週第2次課。2個學時。三 實驗...
《資料結構》實驗二 線性表實驗
資料結構 實驗二 線性表實驗 一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.建立乙個 n個學生成績的順序表,對錶進行插入...
《資料結構》實驗二 線性表實驗
資料結構 實驗二 線性表實驗 一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4...