C 實現雙鏈表

2021-08-04 02:06:21 字數 1232 閱讀 7826

主要實現了頭插,頭刪,尾插尾刪,任意位置的插入刪除,鍊錶的逆置以及鍊錶的深淺拷貝

在這裡說明一下,鍊錶用的最多的就是資料的插入什麼的,所以這裡解決深淺拷貝問題,用的是深拷貝,單鏈表,順序表也是一樣,都是用了深拷貝。

雙向煉表相比較於單鏈表而言,相對複雜一點,有兩個指標,來進行實現鏈式結構

先面試具體**

#include

#include

using namespace std;

typedef int datatype;

struct listnode

}; class list

list(const list

& l)

:_head(null)

,_tail(null)

list

& operator=(const list

& l)

return

*this;

}~list()

void pushback(datatype x)

else

}void popback()

*/else

}void pushfront(datatype x)

else

//insert(_head,x);

}void popfront()

// 在pos的前面插入乙個

void insert(node* pos, datatype x)

else

}void erase(node* pos)

else

if(pos==_tail)

else

}node* find(datatype x)

cur = cur->_next;

}return

null;

}void reverse()}}

void print()

cout<}

void clear()

_head = _tail =

null;

}void copy(const list

&l)

}private:

node* _head;

node* _tail;

}; void listtest()

void listtest1()

void listtest2()

c 實現單 雙鏈表

單鏈表 include using namespace std typedef int datatype struct slistnode 在c 中結構體也就是乙個類 typedef slistnode node class slist slist const slist s head null t...

雙鏈表實現

一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二 實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。三 源 includeconst i...

雙鏈表實現

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