簡單的實現單鏈表的增刪遍歷操作,還有一些功能需要實現。我感覺難理解的時候畫圖來搞清楚邏輯,先畫個圖比劃就行。
// @author:gong
// @single linked list
// @ 增、刪、遍歷
#include#include/*從新定義節點的資料域資料型別,以後好修改具體的鍊錶*/
typedef int data_type;
typedef struct node* node_p;
/*定義乙個鍊錶的節點結構體,關鍵有資料域和指標域*/
struct node;
/*建立乙個鍊錶,關鍵是建立乙個頭節點*/
node_p create_list()
/*建立乙個鍊錶的節點,也就是開闢乙個記憶體空間儲存節點的資料*/
node_p create_list_node(data_type data)
/*在鍊錶的頭部增加值*/
void insert_node_by_head(node_p list, data_type data)
/*在鍊錶的尾部增加值*/
void insert_node_by_last(node_p list, data_type data)
ptr->next = new_node;
new_node->next = null;
} /*在鍊錶的指定位置增加值*/
void insert_node_by_pos(node_p list, data_type data,data_type pos)
} new_node->next = after_node;
before_node->next = new_node;
}/*在鍊錶的指定引數位置刪除,這裡只是以值來判斷*/
void delete_node_by_pos(node_p list, data_type pos)
} before_node->next = after_node->next;
free(after_node);
}/*在鍊錶的頭部刪除*/
node_p delete_node_by_head(node_p list)
/*列印鍊錶的具體值,遍歷操作*/
void print_list(node_p list)
printf("\n");
}int main(void)
用C語言簡單實現單鏈表
typedef struct node node,list 單鏈表的初始化 void initlist list plist plist next null 單鏈表的頭插法 該方法從乙個空鍊錶開始,讀取元素val,生成新的結點,將讀取的資料放到新結點的資料域中,然後將該新結點插入到當前鍊錶的表頭上。...
單鏈表實現 C語言
單鏈表分為帶頭結點和不帶頭結點。頭結點是和普通結點一樣,有資料域,指標域。資料域存放鍊錶結點的個數,指標域存放指向鍊錶的指標。不帶頭結點是指煉表有乙個單純的指標,指向鍊錶,不儲存資料。pragma once ifndef linklist h 防止標頭檔案重複引用 define linklist h...
C語言單鏈表實現
今天分享一下單鏈表 有空頭 的一些操作!主要呢就是增 刪 列印!單鏈表可以比喻成一趟火車,有空頭的單鏈表就像是乙個火車頭拉著一節有一節的車廂。乙個車廂中有資料域和指標域,指標域用來連線,每節車廂肯定要有東西連著,不然就沒有方向了。如圖 所以連線的時候只要將指標域指向下乙個節點就是連線上了,然後刪除呢...