鍊錶的實現

2021-10-18 03:35:00 字數 2443 閱讀 5958

typedef

int sldatatype;

//定義節點:資料+指標

typedef

struct listnode

listnode;

//鍊錶

typedef

struct list

list;

//建立節點

listnode*

creatlistnode

(sldatatype val)

;//節點初始化

void

initlist

(list* lst)

;//尾插o(n)

void

listnodepushback

(list* lst,sldatatype val)

;//尾刪o(n)

void

listnodepopback

(list* lst)

;//頭插o(1)

void

listnodepushfront

(list* lst, sldatatype val)

;//頭刪o(1)

void

listnodepopfront

(list* lst)

;//任意位置新增

void

listnodeinsertafter

(list* lst, sldatatype val)

;//任意位置刪除

void

listnodeeraseafter

(listnode* node)

;//查詢節點

listnode*

listfind

(list* lst, sldatatype val)

;//銷毀節點

void

listnodeerase

(listnode* node)

;//銷毀鍊錶

void

listdestroy

(list* node)

;//列印鍊錶

void

listprint

(list* lst)

;

#include

#include

#include

"list.h"

//建立節點

listnode*

creatlistnode

(sldatatype val)

//節點初始化

void

initlist

(list* lst)

}//尾插o(n)

void

listnodepushback

(list* lst,sldatatype val)

else

tail->_next =

creatlistnode

(val);}

}//尾刪o(n)

void

listnodepopback

(list* lst)

//釋放最後乙個空節點

free

(tail)

;//更新next

//只有乙個節點

if(prev ==

null

)else

}//頭插o(1)

void

listnodepushfront

(list* lst, sldatatype val)

//頭刪o(1)

void

listnodepopfront

(list* lst)

//任意位置新增 那個位置的值存在

void

listnodeinsertafter

(listnode* node, sldatatype val)

//任意位置刪除

void

listnodeeraseafter

(listnode* node)

//查詢節點

listnode*

listfind

(list* lst, sldatatype val)

cur = cur->_next;

}return

null;}

//銷毀鍊錶

void

listdestroy

(list* lst)

lst->_head =

null;}

//銷毀節點

void

listnodeerase

(listnode* node)

//列印鍊錶

void

listprint

(list* lst)

}void

test()

intmain()

鍊錶的實現

鍊錶是一種非常重要的資料結構,比起陣列來雖然操作繁瑣,查詢效率也不如陣列效率高,但在進行插入刪除操作時,鍊錶具有陣列無法比擬的效率,下面的 是鍊錶的實現 include include include define n 100 typedef struct node link link node i...

鍊錶的實現

include using namespace std template class linklist node head public linklist t a,int n 0 利用尾插法來構建線性鍊錶 linklist bool isempty 不為空,則返回0,為空則返回非0 t getnod...

鍊錶的實現

記憶體結構 鍊錶也是資料結構的一種,但是和陣列不一樣,陣列在記憶體中每個節點的位置是相連的。而鍊錶的每個節點在物件中是分散的,依靠引用相連。優點1 單鏈表在增加和刪除上要比陣列結構更加快捷。原因 因為順序表在記憶體中是相連的,所以刪除乙個節點,在該節點之後的節點都要隨之前移,所以效率不高。而單鏈表使...