鍊錶類操作

2021-07-04 03:39:25 字數 1406 閱讀 4771

//反轉鍊錶

node* reverse_list(node* head)

node* p1 =head;

node* p2 =head->next;

node* p =null;

head->next = null;

while(p2)

return p1; }

//在鍊錶指定位置插入節點

node* insert_list(node* head, int n, node* newnode)

node* p =head;

--n;

while(n--&& p)

if(p ==null)

node* temp =p->next;

p->next =newnode;

newnode->next = temp;

return head; }

//鍊錶合併

node * merge(node *head1 , node *head2)

else

node *pcurrent = head;

while(p1!=null &&p2!=null)

else }

if(p1 != null)

pcurrent->next = p1;

if(p2 != null)

pcurrent->next = p2;

return head; }

//遞迴合併有序鍊錶

node * mergerecursive(node *head1 , node *head2)

else

return head; }

//判斷鍊錶是否有環

struct node

bool check(const node* head) {} //return false:無環;true:有環

//一種on)的辦法就是(搞兩個指標,乙個每次遞增一步,乙個每次遞增兩步,如果有環的話兩者必然重合,反之亦然):

bool check(const node* head)

return false; }

鍊錶類模板

include using namespace std class cnode 定義乙個節點類 template 定義類模板 class clist 定義clist類 type movetrail 獲取尾節點 return ptmp 返回尾節點 void addnode type pnode 新增節...

C 鍊錶操作總結和常見鍊錶操作

一 鍊錶的定義 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元 可以是連續的,也可以是不連續的 存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的,每個結點中的指標域指向下乙個結點。head是 頭指標 表示鍊錶的開始,用來指向第乙個結點,而最後乙個指標的指標域為n...

LinkList鍊錶操作

以下的c 類linklist實現了線性鍊錶的一般操作。可以直接在其他的程式中直接建立它的物件,其中線性表中的資料在此為整型,具體應用的時候可以適當的修改,並可以在此基礎上繼續封裝特定的功能。標頭檔案 linklist.h typedef struct lnode lnode,plinklist cl...