類實現 單鏈表基本操作 C

2021-09-25 14:27:23 字數 2579 閱讀 8821

節點 應包括資料值 data 以及指向下乙個節點的指標 next。

#include

using namespace std;

typedef int datatype;

//自定義資料型別

class

node

~node()

void

setdata

(datatype tempdata)

datatype getdata()

void

setnext

(node *tempnode)

node*

getnext()

private

://節點資料私有保護

datatype data;

node *next;};

//下接calss linklist

鍊錶類作為主類,對鍊錶中的節點進行操作(增、刪、改、查…)
class

linklist

~linklist()

//析構函式,釋放節點}}

void

display()

//測試函式

cout<

} datatype get

(int index)

//返回對應索引位置上的節點值(0~index)

return temp-

>

getdata()

;}void

addathead

(int val)

//從首位置新增節點

head = a;

length++;}

void

addattail

(int val)

else

}void

addatindex

(int index,

int val)

//在索引 index 後插入節點;若在 index 前插入節點,出入引數可以改變為 index-1

else

if(index == length)

//如果索引值等於鍊錶長度,則從尾部插入

else

node *pnext = temphead-

>

getnext()

; node *a =

newnode()

; a-

>

setdata

(val)

; a-

>

setnext

(pnext)

; temphead-

>

setnext

(a);

length++;}

}void

deleteatindex

(int index)

//刪除 index 位置處的節點

else

if(index ==0)

else

if(index == length -

1&& index !=0)

last = temp;

last-

>

setnext

(null)

; delete templast;

length--;}

else

node *pnext = temphead-

>

getnext()

; node *q = pnext;

temphead-

>

setnext

(q->

getnext()

);length--

; delete q;}}

node*

reverselist()

//鍊錶反轉

稍作修改,見下

#include

using namespace std;

typedef char datatype;

//自定義資料型別;int 改為 char

測試
int

main()

測試結果

C 實現單鏈表的基本操作

結點類 關鍵處在c語言中用指標來指向下乙個節點,c 是物件導向的,用節點類的乙個屬性 next屬性 來指向下乙個節點物件 public class linknode set private linknodenext public linknodenext set endregion public l...

c 單鏈表基本操作

下午沒事,看資料結構。想到自畢業以後,都沒有寫過這些東西了。寫個鍊錶基本操作,還沒完全測試。includeusing namespace std node 節點 struct node int data node p 單鏈表 class link 通過陣列夠造 link int arr,int le...

C 單鏈表基本操作

include using namespace std struct node class list 建立帶頭結點的鍊錶,head next null 表示鍊錶為空,只有乙個頭結點 void creatlist1 int n 頭插入法建立鍊錶 void creatlist2 int n 尾插入法建立...