Linuxカーネル単鎖表

708 ワード

Linuxカーネルにおけるシングルチェーン表操作のキーポイントを説明します.
1.仮説
  • キー思想を説明するために、データ構造を簡素化しました.
    2.データ構造の定義
    struct ListNode {
        int val;
        ListNode *next;
        ListNode(int x) : val(x), next(NULL) {}
    };
    3.チェーン操作
    3.1チェーンを作成する
  • キー思想:リンクテーブルは実際にnextポインタを通してリンクされているので、nextポインタにどのアドレスが格納されているかを制御するだけで、ノード間のリンク関係を構築することができる
  • .
    ListNode* create(ListNode* l1) {
        ListNode *head = NULL;
        ListNode **node = &head; //     node     ListNode   next       
        while(l1! = NULL){
            (*node) = new ListNode(l1->val); //next          
            node = &((*node)->next); //  node,       next  
            l1 = l1->next;
        }        
        return head;
    }