2

私はデータ構造とアルゴリズムの初心者です。次のコードに出くわしました

typedef struct node                                                
    {                                                               
          int data;            
          node *next;            
    };               

node *next を宣言している理由を教えてください。*next を int *next として宣言することはできませんか?

4

2 に答える 2

13

できるようになりたいと思うからですn->next->next->next...

nextnodeではなく、別の を指す必要がintあります。そうしないと、その後の次を見ることができなくなりintます (できません(aInt)->nextよね?)!

s は、 a (またはその他のデータ) と次の小さなボックスへの参照をnode含む小さなボックスとして見ることができます。intデータを直接指定すると、その後ボックスを取得できなくなります (ただのデータです!) - ボックス ( nodes) を指定する必要があります!

これが私の言いたいことを理解するのに役立つかもしれない画像です (クレジットはバージニア工科大学に送られます): ここにそれを説明する小さな画像があります

于 2012-12-31T15:09:01.447 に答える
1

できますが、リンクされたリストを作成するのには役立ちません。node *nextへのポインターである変数 next があることを確認しますnodeint *nextnext は、 ではなく整数を指すことを意味し、node探しているように見えるリンクリストを提供しません。

于 2012-12-31T15:08:55.643 に答える