雙鏈表實現

2021-08-09 04:40:12 字數 1280 閱讀 2446

一、實驗目的

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

二、實驗內容

建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入、刪除、查詢等操作。分別輸出結果。

三、源**

#includeconst int maxsize=20;

using namespace std;

templatestruct node

;templateclass linklist

;templatelinklist::linklist()

templatelinklist::linklist(t a,int n)

}templatelinklist::~linklist()

}templateint linklist::length()

return count;

}templatet linklist::get(int i)

if(p==null) throw"位置";

else return p->data;

}templateint linklist::locate(t x)

return 0;

}templatevoid linklist::insert(int i,t x)

if(p==null) throw"位置非法";

else

}templatet linklist::delete(int i)

if(p==null||p->next==null)

throw"位置非法";

五、實驗心得

因為雙鏈表的求表長、按位查詢等操作的實現與單鏈表的差不多,所以搞懂單鏈表後再去做雙鏈表,會比較容易一點,花費的時間相對會短一點。但最後執行的時候,在插入成績那裡卡到了,後面刪除的操作都執行不出來。檢查了幾遍插入insert外函式的語句,都沒有找到錯誤。最後放棄(煩到了),第二天早上才繼續看雙鏈表,想到可能是建構函式那裡出錯,最後加上

s->prior=first,執行成功。還是要多加練習,多理解,才能減少錯誤。多練習。

雙鏈表實現

以前寫的不帶頭的單鏈表實現,當時也啥也沒學,好多東西不知道,加上一心想壓縮 減少情況,所以寫得不太好。請教了老師,首先是命名問題和 緊湊性等的改進。還有可讀性方面的改進,多寫了一些注釋。並且因為帶頭的比較好寫,好操作,所以標準寫法也不是很長,繁瑣。下面貼 include include includ...

雙鏈表的實現

雙鏈表 1 雙向鍊錶 double linked list 雙 向 鍊錶中有兩條方向不同的鏈,即每個結點中除next域存放後繼結點位址外,還增加乙個指向其直接前趨的指標域prior。注意 雙鏈表由頭指標head惟一確定的。帶頭結點的雙鏈表的某些運算變得方便。將頭結點和尾結點鏈結起來,為雙 向 迴圈鍊...

C 實現雙鏈表

主要實現了頭插,頭刪,尾插尾刪,任意位置的插入刪除,鍊錶的逆置以及鍊錶的深淺拷貝 在這裡說明一下,鍊錶用的最多的就是資料的插入什麼的,所以這裡解決深淺拷貝問題,用的是深拷貝,單鏈表,順序表也是一樣,都是用了深拷貝。雙向煉表相比較於單鏈表而言,相對複雜一點,有兩個指標,來進行實現鏈式結構 先面試具體 ...