代码之家  ›  专栏  ›  技术社区  ›  Matt

二维链表

  •  1
  • Matt  · 技术社区  · 15 年前

    所以我有

    struct node {
       int number;
       struct node *next;
    
     struct deck{
        int number;
        struct deck *next;
     };
    };
    

    我想创建一个二维链表。我怎样才能初始化这样的东西?

    3 回复  |  直到 15 年前
        1
  •  3
  •   Matthieu    15 年前

    可能是这样吧?

    struct deck{
        int number;
        struct deck *next;
    }
    struct node {
       int number;
       struct node *next;
       struct deck *decks;
    };
    
    struct node *current_node, *new_node;
    struct deck *current_deck, *new_deck;
    
    current_node = (struct node *) malloc (sizeof(struct node));
    
    for (i=0; i<number_of_nodes-1;i++) {
        current_deck = (struct deck* ) malloc (sizeof(struct deck));
        current_node->decks = current_deck;
        for (j=0; j<number_of_decks_in_node_i-1; j++) {
            new_deck = (struct deck* ) malloc (sizeof(struct deck));
            current_deck->next = new_deck;
            current_deck = new_deck;
        }
        new_node = (struct node *) malloc (sizeof(struct node));
        current_node->next = new_node;
        current_node = new_node;
    }
    
        2
  •  2
  •   florin    15 年前

    首先,你需要 甲板 外部 节点 . 你所拥有的是有效的C++而不是C。

    struct node {
       int number;
       struct node *next;
    };
    
    
    struct deck{
       struct node* nodes;
       struct deck* next;
    };
    
        3
  •  1
  •   Shivek Khurana    14 年前

    使用笛卡尔系统,你可以。(顺便说一句,这对我来说还不管用。正在尝试)

    struct node(){
        char data[10];
        node *x_link;
        node *y_link;
    }