使用struct結構體構造node鏈表,在link中聲明node head 和 node tail 來命名兩個結構體的頭和尾鏈表
這里介紹鏈表的初始化和鏈表的清除操作
/* 構造鏈表的結構體 */ #include <stdio.h> typedef struct node{ int val; struct node *p_next; } node; typedef struct { node head; node tail; } link //進行鏈表的初始化 void link_init(link *p_link) { //將頭指針指向尾指針 p_link->head.p_next = &p_link->tail; //將尾指針對應的指針地址設置為0 p_link->tail.p_next = NULL; } //進行鏈表的刪除操作 void link_deinit(link *p_link) { while (p_link->head.p_next != &p_link->tail) { node *p_first = p_link->head; node *p_mid = p_first->p_next; node *p_last = p_mid->p_next; free(p_mid); p_mid = NULL; } }