C 筆記 類的應用例項 單鏈表封裝

2021-10-03 21:39:38 字數 1918 閱讀 2112

鍊錶結點(listnode)類

鍊錶(list)類

#ifndef listnode_h

#define listnode_h

class

list

;// 鍊錶類定義(復合方式)

class

listnode

// 鍊錶結點類

private

:int data;

//結點資料, 整型

listnode *next;

//結點指標};

class

list

//鍊錶類

//建構函式,使新建的鍊錶成為空鍊錶

intinsertdata

(int x,

int i)

;int

removedata

(int

&x,int i)

;void

displayall()

;private

: listnode *first,

*current;

//表頭指標,當前指標};

#endif

// listnode_h

#include

using

namespace std;

#include

"listnode.h"

//在鍊錶第i個結點處插入新元素x,成功返回1,失敗返回0

int list ::

insertdata

(int x,

int i)

if(current ==

null

&& first !=

null

) listnode *newnode =

newlistnode

(x,null);

if(first ==

null

|| i ==0)

//插在表前

else

//插在表中間或表尾

return1;

}//在鍊錶中刪除第i個結點,通過x返回其值

int list ::

removedata

(int

&x,int i)

else

if(current ==

null

|| current-

>next ==

null

)else

//刪除表中間或表尾元素

} x = q-

>data;

// 返回第 i 個結點的值

delete q;

// 刪除鍊錶節點q

return1;

}//顯示鍊錶中所有資料

void list ::

displayall()

cout << endl;

}

#include

#include

#include

"listnode.h"

using

namespace std;

intmain()

a.displayall()

; cout << endl;

system

("pause");

}

//結果9,

8,7,

6,5,

4,3,

2,1,

0,9,

8,7,

6,5,

4,3,

2,1,

0,press any key to continue..

.

單鏈表的應用例項

1 有乙個帶頭結點的單鏈表l a1,b1,a2,b2,a3,b3 an,bn 設計乙個演算法將其拆分為兩個帶頭結點的單鏈表l1和l2,其中l1 a1,a2,a3,a4 an l2 bn,b3,b2,b1 要求l1使用l的頭節點。解 利用原單鏈表l中的所有結點通過改變指標域重組成兩個單鏈表l1和l2。...

單鏈表的模板類 C

header.h pragma once includeusing namespace std templatestruct linknode 節點類定義 初始化指標域的建構函式 linknode const t item,linknode ptr null 初始化資料成員和指標成員和指標的建構函式...

C 模板類 單鏈表

c 作業,用模板類寫鍊錶,完成了對基本的單鏈表的插入,刪除等。include using namespace std templatestruct node templateclass linkedlist linkedlist t find int index 返回索引對應的值 void remo...