鍊錶初始化時需要二級指標
//此處的二級指標即,pphead指向phead指向的值
nodetype *phead =
null
;crealist
(&phead)
;//傳位址
static
void
crealist
(nodetype *
*pphead)
nodetype *phead =
null
;crealist
(phead)
;//此時是值傳遞,傳的是乙個指標的值,不是位址
static
void
crealist
(nodetype *pphead)
typedef void seqlist; 把void命名成seqlist
typedef void seqlistnode;
用void封裝,就不能在外部用修改 比如seqlist list ;
list->length ;
就會出錯,因為list
是空指標
typedef unsigned int tseqlistnode;
typedef struct _tag_seqlist
tseqlist;
void seqlist_clear(seqlist* list) // o(1)
}
C語言 鍊錶筆記
我們至少可以用兩種方式儲存資料 1 陣列 優點 儲存速度快 缺點 需要乙個連續的很大的記憶體 插入和刪除元素的效率很低。陣列每個單元只儲存元素的實際值 2 鍊錶 優點 插入刪除元素的效率高 不需要乙個連續大的記憶體 缺點 查詢元素效率低 鍊錶每個單元分兩部分,左邊儲存實際元素值,右邊儲存下乙個元素的...
雙向鍊錶筆記
雙向鍊錶增刪,準備未來複習自己用 include using namespace std typedef struct node node 測試雙向鍊錶 void showlink node p puts 雙向鍊錶插入 void addnode node head,node tail 在中間新增 w...
核心雙向鍊錶筆記
遇到乙個這個樣的定義static list create table done list 居然沒有宣告table done list 這個變數 跟蹤 define list create name struct list name list init name 可以看到list create是乙個巨...