質問

これについて説明してもらえますか?

struct node 
{ 
    int data; 
    struct node * link; 
} 
main() 
{
    struct node *p, *list, *temp; 
    list = p = temp = NULL; 
    ......................... 
    ......................... 
} 

addbeg() 
{ 
    int x;
    temp=malloc(sizeof(struct node));
    scanf("%d", &x); 
    temp->data=x;
    temp->link = list;
    list=temp;
}

これは、C言語を介してリンクリストにデータを入力するためのコードです。コードは完全ではありませんが、その目的には十分だと思います。基本的にこれらの行のコーディングについて説明してください:

 temp=malloc(sizeof(struct node));

and

 temp->link = list;
 list=temp;.
役に立ちましたか?

解決

malloc()は、メモリを割り当てるために使用されます。この場合、新しいノード用です。

コードで定義されている addbeg()関数は次のことを行います。

  1. 一時変数 x を定義します。
  2. 新しいノードにスペースを割り当てます。
  3. 整数(%d コードを scanf に入力)を入力して x に保存します。
  4. 新しく割り当てられたノードのデータフィールドの x に保存された値を格納します。
  5. 古い" head"を保存します新しく割り当てられたノード内のリンクとして変数「 list 」が指すリストの。
  6. 変数「 list 」に保存されているリストの新しいヘッドに新しいノードを設定します。

リンクリストの非常に基本的な実装です( http://en.wikipedia.org/wiki / Linked_list )整数。

他のヒント

最初の行:リストの単一の追加ノードにメモリを割り当てます。

2行目:現在のリストをこの要素の後の継続として添付します。

3行目:現在の要素をリストの先頭にします。

tempおよびlistは、mainで宣言されているため、addbegには表示されません。これらは、addbegに渡すか、メイン(グローバル、yuck)の外部で宣言する必要があります。

mallocは、新しいノードにスペースを割り当てます。

temp->link = list

and

list = temp

その新しいノードをリストの先頭にします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top