《資料結構》實驗二:
線性表綜合實驗
一.實驗目的
鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題
二.實驗內容
1.建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入、刪除、查詢等操作。分別輸出結果。
要求如下:
1)用順序表來實現。
2)用單鏈表來實現。
3)用雙鏈表實現。
4)用靜態鍊錶實現。
5)用間接定址實現。
雙鏈表的實現
#include
using namespace std;
const int m=100;
//雙鏈表的儲存
struct dulnode
;class linklist;
//遍歷操作
void linklist::printlist()
cout<
next; //使其指向第乙個元素
while(p!=null)
return count;
}//按位查詢
int linklist::get(int i)
if(p==null) throw"位置";
else return p->data;
}//按值查詢
int linklist::locate(int x)
return 0;
}//插入操作
void linklist::insert(int i,int x)
if(p==null) throw"位置"; else } //無參建構函式 linklist::linklist() //有參建構函式 linklist::linklist(int a,int n) r->next=null; } //刪除操作 int linklist::delete(int i) if(p==null) //結點p不存在或其後繼結點不存在 throw"位置"; else } //析構函式 linklist::~linklist() } int main() linklist list(d,n); while (1) { cout<
>tab; switch(tab) { case 1: { cout<
>loc; x=list.get(loc); cout <
<
>x; loc=list.locate(x); cout<
<
>loc; cout<>x; list.insert(loc,x); cout<
>loc; x=list.delete(loc); cout<
<
<
執行結果截圖:
1)錄入並輸出學生成績
2)輸出表長
3)按位查詢
4)按值查詢
5)插入操作
6)插入成功後輸出成績
7)刪除操作
8)插入成功後輸出成績
雙鏈表的實現
雙鏈表 1 雙向鍊錶 double linked list 雙 向 鍊錶中有兩條方向不同的鏈,即每個結點中除next域存放後繼結點位址外,還增加乙個指向其直接前趨的指標域prior。注意 雙鏈表由頭指標head惟一確定的。帶頭結點的雙鏈表的某些運算變得方便。將頭結點和尾結點鏈結起來,為雙 向 迴圈鍊...
雙鏈表實現
一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二 實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。三 源 includeconst i...
雙鏈表實現
以前寫的不帶頭的單鏈表實現,當時也啥也沒學,好多東西不知道,加上一心想壓縮 減少情況,所以寫得不太好。請教了老師,首先是命名問題和 緊湊性等的改進。還有可讀性方面的改進,多寫了一些注釋。並且因為帶頭的比較好寫,好操作,所以標準寫法也不是很長,繁瑣。下面貼 include include includ...