【问题标题】:Singly Linked List c++单链表 c++
【发布时间】:2016-02-09 00:35:06
【问题描述】:

我试图通过阅读一些代码并从中理解单链表来理解它。 此代码,在此站点上找到 http://www.sanfoundry.com/cpp-program-implement-single-linked-list/, 有

struct node
{
    int info;
    struct node *next;

} *start;

我了解 int info 和 struct node *next 的作用,但是关闭括号后额外的 *start 是什么意思?

谢谢!

【问题讨论】:

  • 这是 C。在 C++ 中,第二个结构不是必需的。
  • @LokiAstari 好的,谢谢!!

标签: c++


【解决方案1】:

startstruct node* 类型的变量 - 我猜它是列表的头部。

如果你发现拆分类型和变量更容易:

struct node
{
    int info;
    struct node *next;

};

struct node* start;

因为这是 C++ 你也可以简化为node* start;

【讨论】:

  • 啊,好的,谢谢。我假设我们可以把它放在其他地方对吗?我们还能在哪里插入它而不是那里?这对我来说似乎有点格格不入,让人有点困惑......
  • 因为它被标记为 C++,所以不需要 typedef。第二个结构也不是。
【解决方案2】:
    struct node
{
    int info;
    struct node *next;

};

将上述内容视为您将来将使用的模板。

因此,当您想使用上述结构构建数据时,您需要定义一个变量或在内存中实例化该结构,如下所示

类似

struct node mynode;
or 
struct node* mynodeptr = new node;

要回答您的后续问题,可以在需要实例化 node 变量的任何地方完成上述操作。所以是的,它不必总是按照您在原始问题中的方式完成。

至于typedefstruct,关于你为什么要使用它的讨论很好。看看here

【讨论】:

  • 哦,我明白了,谢谢!我很难确定在哪里放什么?在 single_llist 的公共部分进行设置是否合适?
  • @rose 我不完全确定single_llist 的公共部分是什么意思。如果您计划在项目的多个源文件中使用它们,通常会在头文件中完全声明结构。但是,您也可以在单个源文件中声明和实例化,从而使结构仅本地化到该源文件。这取决于您的实施要求。
【解决方案3】:

它是一个结构节点类型的变量。 用作链表的头部。在链表中多次引用遍历。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2010-11-08
    • 2011-03-11
    • 2016-06-15
    • 2011-01-19
    相关资源
    最近更新 更多