自己用C寫的list雙向鍊錶

2022-08-17 14:06:22 字數 2148 閱讀 6333

自己用c寫的list雙向煉表頭檔案

1

#ifndef _list_h_

2#define _list_h_

34 #include 5 #include 6 #include 7

8 typedef int

datatype;

9struct

node;

1415 typedef struct

node node;

1617

struct

list;

2223 typedef struct

list list;

2425

void init(list *l);

26void destroy(list *l);

27 size_t size(list *l);

28bool isempty(list *l);

29void addnodeafter(node * pn, node *new_node);

30void addfirst(list *l, datatype item);

31void addlast(list *l, datatype item);

32 datatype getfirst(list *l);

33 datatype getlast(list *l);

34void removenodeafter(node *pn);

35 datatype removefirst(list *l);

36 datatype removelast(list *l);

37void showall(list *l);

3839

//用calloc建立2個帶有預設初始值的node,分別賦給root,和tail,並鏈結好root和tail.

40void init(list *l)

4149

50//

釋放占用記憶體

51void destroy(list *l)

5260 l->root = l->tail =null;

61 l->size = 0;62

}6364//

返回當前元素個數

65 size_t size(list *l)

6669

70bool isempty(list *l)

7174

75//

將新增節點new_node鏈結在節點pn後面

76void addnodeafter(node * pn, node *new_node)

7783

84//

向鍊錶頭部新增新元素item

85void addfirst(list *l, datatype item)

8692

93//

向鍊錶尾部新增新元素item

94void addlast(list *l, datatype item)

95101

102//

返回鏈首元素的值

103 datatype getfirst(list *l)

104109

110//

返回鏈尾元素的值

111 datatype getlast(list *l)\

112117

118//

刪除pn後面的節點,並釋放被刪節點占用的記憶體

119void removenodeafter(node *pn)

120126

127//

移除鏈首元素

128 datatype removefirst(list *l)

129137

138//

移除鏈尾元素

139 datatype removelast(list *l)

140148

149//

遍歷鍊錶

150void showall(list *l)

151157 node * current = l->root->next;

158while(current != l->tail)

159163 printf("\n"

);164

}165

166#endif

list

雙向鍊錶(自己寫的c 類)

uva還是上不去t t哭瞎了。只好老老實實的研究上回買的書了。寫得有點長。好吧,我只是來複習c 類的。特意用class 而不用struct寫鍊錶。資料結構還沒學。雙向鍊錶就當先預習了。大神們輕噴。t t 有一些小球,從左到右依次編號為1,2,3 n 你可以執行兩種指令,其中a x y表示把小球x移動...

List雙向鍊錶

include 宣告 list int mylist 定義 mylist.push front 1 頭部插入元素 mylist.push back 2 尾部插入元素 pop front 移除頭部元素 pop back 移除尾部元素 list int iterator lter 迭代器定義 iter ...

List 雙向鍊錶

list是一種雙向鍊錶結構,可以從第乙個元素開始刪除 插入,也可以從最後乙個元素刪除 插入,下面介紹一下 list 中常用的幾個函式 一 list 中的 begin 和 end 函式 和其他幾種資料結構差不多,都是用來從第乙個元素,訪問到最後乙個元素,返回的是當前指標 listl l.begin 輸...