最近常看EFI的code,所以就順便整理一下一些C的資料結構的東東。
1.EFI中都是喜歡使用雙向鏈結串列(doubly linked list)
在雙向鏈結串列中的節點(Node)至少有2個欄位,一個為向後結欄 (BackLink) ,另一個為向前鏈結欄 ( ForwardLink ) 。其必要的宣告為:
typedef struct node *node_ptr ;
typedef struct node {
node_ptr Flink ;
node_ptr Blink ;
} ;
2.插入鏈結串列可以從頭插入或是從尾插入兩種,底下是圖示來表示這兩種差別。
InsertHeadList();
InsertTailList();
這些鏈結的運用在EFI中隨處可見,所以在這邊留下筆記來紀錄一下學習心得!