雙鏈表的實現

2021-08-09 05:49:12 字數 2193 閱讀 4795

《資料結構》實驗二:

線性表綜合實驗

一.實驗目的

鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題

二.實驗內容

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...