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 list, int val);
node *search(list list, int key);
node *searchpre(list list, int key);//查詢key的前驅
bool delete(list list, int key);
int length(list list);//返回鍊錶的資料節點個數
void show(list list);
void destroy(list list);//刪除list所有資料節點
#endif
list.c如下:
#include "list.h"
#include #include #include static node *buynode(int val)
void initlist(list list)
bool insert_head(list list, int val)
bool insert_tail(list list, int val)
p->next = buynode(val);
return true;
//p=list->next;//null
//while(p!=null)
// //p++;
}node *search(list list, int key)
} return null;
}node *searchpre(list list, int key)//查詢key的前驅
} return null;
}bool delete(list list, int key)
node *q = p->next;
p->next = q->next;
free(q);
//free(p->next);//error
//p->next = p->next->next;
return true;
}int length(list list)//返回鍊錶的資料節點個數
return count;
}void show(list list)
printf("\n");
}void destroy(list list)//刪除list所有資料節點
/* node *p = list->next;
node *q;
list->next = null;
while(p!=null)
*/}
資料結構 單鏈表 c語言實現
建立結構體 node typedef struct node node,pnode 在堆記憶體上 動態建立結構體p指標 頭指標 指向頭節點的指標變數 頭節點 沒有有效資料,但是指向首節點的,結構體 首節點 第乙個含有有效資料,並儲存下個有效節點的指標 尾結點 最後乙個含有效資料,不指向下個節點位址,...
資料結構之單鏈表(C語言實現)
資料結構之單鏈表 c語言實現 本次介紹三種單鏈表 普通單鏈表 迴圈鍊錶和雙向鍊錶,後面的部落格會繼續介紹後兩種鍊錶 首先介紹單鏈表的特點 1.鍊錶是由乙個個記憶體位址不連續的節點組成 2.每個節點最多只有乙個前驅,乙個後記 第乙個節點只有後繼沒有前驅,最後乙個節點只有前驅沒有後繼 3.鍊錶不支援隨機...
資料結構 單鏈表的c語言實現
鍊錶是通過一組任意的儲存單元來儲存線性表中的資料元素,這些儲存單元可以是連續的也可以是不連續的。為了建立起資料元素之間的關係,對於每個資料元素除了存放資料元素自身的資訊外,還必須有包含的指示該元素直接後繼元素儲存位置的資訊,這兩部分資訊組成乙個結點,即每個結點都有至少包括兩個域,乙個域儲存資料元素資...