【问题标题】:Implementation of 2D LinkedList二维链表的实现
【发布时间】:2020-10-02 02:34:23
【问题描述】:

我正在尝试创建两个 D 链表数组(不使用 std)。我想使用基于类的 LinkedList 实现。我想要一个 Foo 节点的主列表,每个 Foo 节点都有一个 Bar 节点列表。但是,我不知道如何在 Foo 节点结构中定义它

struct Foo {
   Foo *next;
   int fooVal;
   LinkedList *list; /// doesn't work
}

struct Bar {
   Bar *next;
   string barVal;
}

class LinkedList {
  private:
    foo *head;

  public:
   .....

}

【问题讨论】:

  • 尝试将LinkedList *list; 更改为class LinkedList *list;,以便编译器知道您指的是一个类(稍后将定义)。
  • 请注意 C++ 区分大小写。 class LinkedList 中的行 foo *head; 不是指 struct Foo
  • 我上面的cmets并没有解决struct Foo没有以任何方式引用struct Bar的问题。请参阅有关如何解决该问题的答案。

标签: c++


【解决方案1】:
struct Bar {
   Bar *next;
   string barVal;
}

struct Foo {
   Foo *next;
   int fooVal;
   Bar *head_of_bars;
};

class LinkedList {
 private:
  Foo *head_of_foos;
};

【讨论】:

  • 我现在在尝试将 barVal 设置为字符串时出现内存错误。我有 Foo *itter = list.head, itter->head_of_bars->barVal = "FooBar" 但出现内存访问错误。
  • @NathanTakemori:我建议您打开一个新问题并提供一个minimal reproducible example 来说明您的新问题。
猜你喜欢
  • 2012-12-28
  • 2021-07-05
  • 2015-09-05
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多