C指標實現單鏈表,主函式呼叫

2021-10-18 18:15:36 字數 2355 閱讀 8520

#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...