單鏈表資料儲存結構 c語言實現

2021-06-02 02:46:09 字數 1677 閱讀 5824

1.list.h

# 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(list *l, void * key, int (*compare)(void *, void *));

int deletelistbykey(list * l, void * key, int (*compare)(void *, void *));

# endif

2.list.c

# include "list.h"

# include

# include

# include

list * initlist()

int insertlist(list *l, void * data, int size)

memcpy(n->data, data, size);

n->next = null;

if(null == l->head)

l->head = n;

else

l->last->next = n;

l->last = n;

l->length++;

return 1;}

node * findnodebykey(list *l, void * key, int (*compare)(void *, void *))

return null;}

node * findnodepre(list *l, void * key, int (*compare)(void *, void *), node ** pre)

return null;}

int deletelistbykey(list * l, void * key, int (*compare)(void *, void *))

3.main.c

# include "list.h"

# include

# include

struct stu

s[3] = ,,};

int comparebyname(void * info, void * key)

int comparebysno(void * info, void * key)

void main()

res = findnodebykey(list, name, comparebyname);

if(res == null)

printf("the value is not the list!\n");

else

printf("the value is found!\n");

if(deletelistbykey(list, sno, comparebysno))

printf("delete success\n");

else

printf("delete fail\n");}

資料結構 單鏈表c語言實現

list.h如下 ifndef list h define list h typedef struct node node,list void initlist list list bool insert head list list,int val bool insert tail list li...

資料結構 單鏈表 c語言實現

建立結構體 node typedef struct node node,pnode 在堆記憶體上 動態建立結構體p指標 頭指標 指向頭節點的指標變數 頭節點 沒有有效資料,但是指向首節點的,結構體 首節點 第乙個含有有效資料,並儲存下個有效節點的指標 尾結點 最後乙個含有效資料,不指向下個節點位址,...

資料結構之單鏈表(C語言實現)

資料結構之單鏈表 c語言實現 本次介紹三種單鏈表 普通單鏈表 迴圈鍊錶和雙向鍊錶,後面的部落格會繼續介紹後兩種鍊錶 首先介紹單鏈表的特點 1.鍊錶是由乙個個記憶體位址不連續的節點組成 2.每個節點最多只有乙個前驅,乙個後記 第乙個節點只有後繼沒有前驅,最後乙個節點只有前驅沒有後繼 3.鍊錶不支援隨機...