#include
#include
typedef
int listitem;
// 表元素型別
typedef listitem *addr;
// 表元素指標型別
#define eq(a, b) (a == b)
// 元素相等
typedef
struct node *link;
// 表結點指標型別
typedef
struct node
node;
link newnode()
// 新建乙個結點
typedef
struct llist *list;
// 單鏈表指標
typedef
struct llist // 單鏈表
llist;
list listinit()
;// 表結構初始化,返回乙個結構體指標
intlistempty
(list l)
;// 測試表是否為空
intlistlength
(list l)
;// 表l的長度
listitem listretrieve
(int k, list l)
;// 返回表l位置k的元素
intlistlocate
(listitem x, list l)
;// 元素x在表l的位置
void
listinsert
(int k, listitem x, list l)
;// 在表l索引k的位置插入元素x
listitem listdelete
(int k, list l)
;//從表l中刪除位置k的元素
void
printlist
(list l)
;// 按照位置次序輸出表l中的元素
void
itemshow
(listitem x)
;// 輸出表元素
intmain
(int argc,
char
const
*ar**)
void
itemshow
(listitem x)
// 輸出表元素
list listinit()
// 單鏈表結構初始化,返回乙個結構體指標
intlistempty
(list l)
// 測試表是否為空
intlistlength
(list l)
// 遍歷鍊錶所有元素計算長度
return len;
}listitem listretrieve
(int k, list l)
// 返回表l位置k的結點的值
return p->element;
}int
listlocate
(listitem x, list l)
// 結點x在表l的位置
return p ? i :0;
// 若結點值存在返回其位置i,不存在返回0
}void
listinsert
(int k, listitem x, list l)
// 在表l索引k的位置插入結點值為x的結點
else
// 遍歷不到,就新增到表頭
}listitem listdelete
(int k, list l)
//從表l中刪除位置k的元素
listitem x = p->element;
// 用作返回的被刪除結點的值
free
(p);
return x;
}void
printlist
(list l)
// 按照位置次序輸出表l中的元素
}
result:
init success.
list length is 3.
1122
33---------------------
22 locate is 2.
---------------------
after listinsert(2, 44, l);11
2244
33---------------------
after listdelete(4, l)
1122
44---------------------
free success.
C 單鏈表實現
1 單向鍊錶 單向鍊錶 include include class cnode 節點類 class clist 鍊錶類 cnode movetrail cnode pnode 移動到尾節點 return ptmp void addnode cnode pnode 新增節點 else m nodesu...
c 實現單鏈表
include include using namespace std typedef int datatype struct linknode 建立乙個節點 class slist void swap slist s slist const slist s head null tail null ...
單鏈表(C實現)
ifndef list h define list h typedef struct node node typedef struct list list initlist int insertlist list l,void data,int size node findnodebykey lis...