节点*链接列表中的下一个

时间:2012-12-31 15:07:12

标签: c++ data-structures

我是数据结构和算法的新手。我遇到了以下代码

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

任何人都可以告诉我为什么我们接下来宣布节点*?不能*下一个被声明为int * next?

2 个答案:

答案 0 :(得分:11)

因为您希望能够n->next->next->next...等等。

next需要指向另一个node,而不是int,否则您将无法在此之后看到下一个int(您无法做到(aInt)->next {1}},你呢?)!

您可以将node视为包含int(或任何其他数据)的小方框,以及对下一个小方框的引用。如果您直接指向数据,那么之后您将无法获得该框(这只是愚蠢的数据!) - 您需要指向框(node s)!

这是一张图片,可能有助于了解我的意思(积分转到Virginia Tech): Here's a little image explaining it

答案 1 :(得分:1)

你可以,但它不会帮助你写一个链表。 node *next确保您有一个变量next,它是指向node的指针。 int *next表示接下来会指向一个整数,而不是node,不会为您提供链接列表,这就是您正在寻找的内容。