2

いくつか説明してください

new_node->next = (*head_ref);
(*head_ref) = new_node;

これは以下のコードで

/* Utility function to insert a node at the beginning */
void push(struct node **head_ref, int new_data)
{
    struct node *new_node = (struct node *) malloc(sizeof(struct node));
    new_node->data = new_data;
    new_node->next = (*head_ref);
    (*head_ref) = new_node;
}
4

2 に答える 2

0

これは、単純なノードが C のリンク リストの先頭に追加される方法です。コードはヘッドへの参照のみを保持し、新しいノードが追加されると先頭に追加され、新しく挿入されたノードは新しいノードと見なされます。頭。

コードでは、最初の行で先頭に新しいノードを追加します。これは、現在のリスト (ヘッダーが指す) を次に新しいノードにアタッチすることによって行われます。

2 行目は、新しいノードをリスト ヘッドとしてマークします。

上記のロジックの包括的な図による説明については、以下のリンクをご覧ください。

http://www.thelearningpoint.net/computer-science/data-structures-singly-linked-list-with-c-program-source-code

于 2013-10-05T07:53:39.137 に答える
0

まさにコメントの通りです。先頭に新しいノードを挿入し、新しい先頭を指すように head_ref を更新します。

于 2013-10-05T07:40:28.100 に答える