核心雙向鍊錶筆記

2021-10-07 11:43:35 字數 375 閱讀 4333

遇到乙個這個樣的定義static list_create( table_done_list );,居然沒有宣告table_done_list 這個變數 

跟蹤**#define list_create(name) \

struct list name = list_init(name)  可以看到list_create是乙個巨集定義

list_init也是乙個巨集定義 #define list_init(name)

其實替換下來就是 

static list_create( table_done_list )   就是   static struct list table_done_list = 也就是用這種方式宣告了乙個靜態變數

詳細分析請看

雙向鍊錶筆記

雙向鍊錶增刪,準備未來複習自己用 include using namespace std typedef struct node node 測試雙向鍊錶 void showlink node p puts 雙向鍊錶插入 void addnode node head,node tail 在中間新增 w...

C語言 鍊錶筆記

我們至少可以用兩種方式儲存資料 1 陣列 優點 儲存速度快 缺點 需要乙個連續的很大的記憶體 插入和刪除元素的效率很低。陣列每個單元只儲存元素的實際值 2 鍊錶 優點 插入刪除元素的效率高 不需要乙個連續大的記憶體 缺點 查詢元素效率低 鍊錶每個單元分兩部分,左邊儲存實際元素值,右邊儲存下乙個元素的...

c 語言鍊錶 筆記

鍊錶初始化時需要二級指標 此處的二級指標即,pphead指向phead指向的值 nodetype phead null crealist phead 傳位址 static void crealist nodetype pphead nodetype phead null crealist phead...