C 單向鍊錶

2021-10-04 22:49:24 字數 3865 閱讀 1505

實現鍊錶的增刪改查

ownlinklist.cpp

#include

#include

"include/ownlinklist.h"

#include

using namespace std;

node*

init()

node*

get_elment

(node *_list,

int index)

if(i!=index+

1|| index<0)

return p;

}void

add_node_to_tail

(node *_list,node *_node)

while

(p->next)

p->next = _node;

}void

insert_node

(node *_list,node *_node,

int index)

int i =0;

while

(inext)

if(i>index)

node *temp = p->next;

p->next = _node;

_node->next = temp;

}void

delete_node

(node *_list,

int index)

node *p = _list;if(

!p->next)

int i =0;

while

(inext)if(

!p->next->next && index !=0)

p->next = p->next->next;

}void

update_node

(node *node,

int data)

void

update_node

(node *_list,

int index,

int data)

int i =0;

while

(i<=index && p->next)

p->data = data;

}int

len_of_list

(node *_list)

return i;

}void

print_list

(node *_list)

while

(p->next)

cout<<

"------\tprint the list end\t------"

<}

ownlinklist.h

#ifndef ownlinklist_h_included

#define ownlinklist_h_included

struct node

;node*

init()

;//返回頭指標

node*

get_elment

(node *_list,

int index)

;//獲取某個節點

void

add_node_to_tail

(node *_list,node *_node)

;//新增乙個節點到鍊錶尾

void

insert_node

(node *_list,node *_node,

int index)

;//插入節點

void

delete_node

(node *_list,

int index)

;//刪除節點

void

update_node

(node *node,

int data)

;//根據節點修改值

void

update_node

(node *_list,

int index,

int data)

;//根據序號修改值

intlen_of_list

(node *_list)

;//鍊錶長度

void

print_list

(node *_list)

;//列印鍊錶

#endif

// ownlinklist_h_included

main.cpp

#include

#include

"include/ownlinklist.h"

using namespace std;

intmain()

;add_node_to_tail

(_list,n);}

print_list

(_list)

; node *_node =

get_elment

(_list,1)

; cout<<

"this node is "

<<_node->data

(_node,33)

;print_list

(_list)

; node *n1 = new node

;insert_node

(_list,n1,1)

;print_list

(_list)

;delete_node

(_list,-1

);print_list

(_list)

;update_node

(_list,1,

44);print_list

(_list)

; cout<<

"the list length is "

<<

len_of_list

(_list)

}

result

------	begin print the list	------ 12

3456

78910

------ print the list end ------

this node is 2

------ begin print the list ------ 133

3456

78910

------ print the list end ------

------ begin print the list ------ 122

33345

6789

10------ print the list end ------

delete failed,index must begins with 0

------ begin print the list ------ 122

33345

6789

10------ print the list end ------

------ begin print the list ------ 144

33345

6789

10------ print the list end ------

the list length is 11

process returned 0 (0x0) execution time : 0.004 s

press enter to continue.

C 單向鍊錶

單向鍊錶 鍊錶的功能包括 向尾節點新增資料,遍歷鍊錶中的節點,在鍊錶結束時釋放所有節點 class cnode 定義乙個節點類 class csllist 定義鍊錶類csllist類 csllist m nodesum 0 pdelete null ptmp null m pheader null ...

C語言 單向鍊錶

1.c語言單向鍊錶 2.鍊錶的 增,刪,查,遍歷 author mr.long date 2015 12 1 15 24 26 include include 結構定義 struct node 函式定義 void printnode struct node head struct node addf...

C 單向鍊錶反轉

根據我的理解,我這裡用到用到三個指標 假設有如下鍊錶 新建三個指標,資訊分別如下 head curr都指向list,而 temp指向乙個空塊 然後將curr移動到下一塊鍊錶,這時將head next指向temp 最後移動temp到head,再將head移動到curr,整個過程大概就這樣 如下 nod...