資料結構 有序的雙鏈表的實現

2021-09-29 09:35:19 字數 1727 閱讀 8135

定義有序的雙鏈錶類,鍊錶中儲存整型資料,建立帶頭結點的有序雙鏈表,要求包含以下成員函式:

雙鏈表的建構函式(非空的鍊錶,輸入資料為0,表示輸入結束)

插入操作(將乙個資料元素插入到有序的雙鏈表中,插入之後鍊錶仍然有序,輸入資料為0表示插入操作結束)

按值刪除節點(考慮有重複值的情況)

雙鏈表的遍歷操作

雙鏈表的析構

輸入鍊錶中的元素,根據輸入元素,建立有序雙鏈表(非空的鍊錶,輸入資料為0,表示輸入結束)

輸入要插入的值(可以插入多個值,0表示輸入結束,)

輸入要刪除的值(可以刪除多個值,0表示結束,)

輸出建立的結果

輸出插入的結果

輸出刪除之後的結果

#include

#include

using

namespace std;

/*輸入鍊錶中的元素,根據輸入元素,建立有序雙鏈表(非空的鍊錶,輸入資料為0,表示輸入結束)

輸入要插入的值(可以插入多個值,0表示輸入結束,)

輸入要刪除的值(可以刪除多個值,0表示結束,)*/

template

<

class

t>

struct node

;template

<

class

t>

class

list

;template

<

class

t>

list

::list()

template

<

class

t>

list

::list

(int a,

int n)

}template

<

class

t>

void list

::print ()}

template

<

class

t>

void list

::cha

(int a,

int n)

p=p-

>rlink;}if

(p->rlink==

null)}

}template

<

class

t>

void list ::d

(int a,

int n)

p=p-

>rlink;}if

(p->rlink==

null

&&p-

>data==a[i])}

}bool

cmp(

int a,

int b)

intmain()

sort

(a1,a1+i,cmp)

; list <

int>

a(a1,i)

; a.

print()

; cout

while

(cin>>t&&t)

a.cha(a2,j)

; a.print ();

cout

while

(cin>>t&&t)

a.d(a3,k)

; a.print ();

}

有序雙鏈表的實現

總時間限制 100000ms 記憶體限制 655360kb 描述定義有序的雙鏈錶類,鍊錶中儲存整型資料,建立帶頭結點的有序雙鏈表,要求包含以下成員函式 雙鏈表的建構函式 非空的鍊錶,輸入資料為0,表示輸入結束 插入操作 將乙個資料元素插入到有序的雙鏈表中,插入之後鍊錶仍然有序,輸入資料為0表示插入操...

資料結構之 雙鏈表的實現

使用巢狀類實現 雙鏈表 學習要點 1 實現雙鏈表資料結構的定義以及各種操作 1 區別深拷貝 另外動態分配記憶體進行拷貝 和 淺拷貝 直接拷貝賦值 2 實現深拷貝構造和深拷貝賦值函式 3 實現操作運算子的過載 深拷貝賦值 輸出運算子過載 建立全域性函式,在類中定義時可宣告為friend函式 frien...

有序的雙鏈表的實現

定義有序的雙鏈錶類,鍊錶中儲存整型資料,建立帶頭結點的有序雙鏈表,要求包含以下成員函式 雙鏈表的建構函式 非空的鍊錶,輸入資料為0,表示輸入結束 插入操作 將乙個資料元素插入到有序的雙鏈表中,插入之後鍊錶仍然有序,輸入資料為0表示插入操作結束 按值刪除節點 考慮有重複值的情況 雙鏈表的遍歷操作 雙鏈...