一、實驗目的
鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。
二、實驗內容
建立乙個由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 實現雙鏈表
主要實現了頭插,頭刪,尾插尾刪,任意位置的插入刪除,鍊錶的逆置以及鍊錶的深淺拷貝 在這裡說明一下,鍊錶用的最多的就是資料的插入什麼的,所以這裡解決深淺拷貝問題,用的是深拷貝,單鏈表,順序表也是一樣,都是用了深拷貝。雙向煉表相比較於單鏈表而言,相對複雜一點,有兩個指標,來進行實現鏈式結構 先面試具體 ...