鍊錶的C 實現 (使用類實現

2021-10-02 14:38:07 字數 2898 閱讀 1976

#include

#include

using

namespace std;

class

node};

class

link

~link()

void

initiate()

;//初始化

void

deleteall()

;//刪除所有節點

void

headcreate

(int n)

;//頭插法建表

void

trailcreate

(int n)

;//尾插法建表

void

headcreatewithhead

(int n)

;//建立帶表頭的鍊錶(從頭)

void

trailcreatewithtrail

(int n)

;//建立帶表頭的鍊錶(從尾)

intlength()

;//鍊錶長度

node *

locatex

(string data)

;//查詢值為x的資料元素

node *

locatei

(int i )

;//取第i個元素值

bool

insert

(string data,

int i)

;//在鍊錶第i個元素之前插入x

bool

deleted

(int i)

;//刪除鍊錶中第i個結點

void

print()

;//列印鍊錶

string get

(int i)

;//讀取第i個位置上的元素值

void

reverse

(link &h)

;//單鏈表的倒置

void

merge

(link &a,link &b,link &c)

else

s->next=c.head-

>next;

c.head-

>next=s;

}//插入c表的頭部,即頭插法

if(p==

null

)while

(p!=

null

)//將pq剩餘的結點插入到c

a.head=

null

; b.head=

null

;//將鍊錶ab的head指標置為空

//歸併的複雜度為o(m+n)}}

void link::

initiate()

void link::

headcreate

(int n)

head = p;

// 最後生成鍊錶的頭結點是最後生成的新結點

}void link::

trailcreate

(int n)

} head = p;

}//沒有頭結點的話空表和非空表的操作會有差異,因此加入頭結點可以將操作統一

void link::

headcreatewithhead

(int n)

head = p;

}void link::

trailcreatewithtrail

(int n)

//帶頭結點的尾插法就是只移動尾指標

r->next =

null

;//隊尾指標下乙個指向為空

head = p;

}int link::

length()

return

--len;

}//查詢操作

node * link::

locatei

(int i)

node *p = head -

>next;

while

((p!=

null)&&

(j)//推進指標

if(j==i)

return p;

else

}// 按值查詢即定位

node *link::

locatex

(string data)

else

}string link::

get(

int i)if(

(p==

null)||

(j>i)

)else

return p-

>data;

}//插入結點,(前插結點)

bool link::

insert

(string data,

int i)

s =newnode()

; s-

>data = data;

s->next = p-

>next;

p->next = s;

return

true;}

bool link::

deleted

(int i)

q= p-

>next;

if(q!=

null

)else

}void link::

print()

cout << endl;

}void link::

deleteall()

head =

null;}

void link::

reverse

(link &h)

}int

main()

c 鍊錶類的實現

include define null 0 class node 節點類 node int n node int n,node p void setnum int n void setnext node p int getnum node getnext private int num node n...

c 鍊錶類的實現

void initlist 初始化 void creatlist elemtype a,int n 建立 void destroylist 銷毀 bool listempty 是否為空 intlistlength 長度 bool displaylist 全部輸出 bool getelem elemt...

C 模板類實現鍊錶

注意 鍊錶中要包含node的結構體,用來把節點放進去 只有出現node就要加,不然會報錯 有類模板的重新編譯記得清空再重新生成 清除鍊錶時使用的迴圈清空頭結點的思想需要記得 c語言中一樣迴圈呼叫清除0號元素也可以 debug和release編譯不同,一步一步執行時順序不一樣,不知道為啥了,不過不重要...