【问题标题】:Is it possible to create a linked list of nodes with no data in them and populate the data later in c++是否可以创建一个没有数据的节点链表并稍后在 C++ 中填充数据
【发布时间】:2020-03-28 22:10:00
【问题描述】:

我正在尝试编写一个 c++ 程序,该程序询问用户需要多少个节点,然后使用该输入创建一个包含那么多节点的链表。我想稍后用数据填充这些节点。那可能吗? 传统的链表示例在创建节点时填充数据。

【问题讨论】:

  • 您可以在创建节点时使用默认值,也可以在创建时不初始化数据部分。您的数据类型是什么?
  • 绝对。这是链表设计之美的一部分。
  • 我正在尝试创建一个列表,其中包含每个节点中的水果名称及其在节点数据部分中的权重。所以我需要在数据部分有一个字符串和一个 int/float。知道如何创建一个包含 10 个空水果节点的列表 - 每个节点包含水果名称和重量的占位符 - 然后使用用户输入填充数据?
  • 您几乎可以随心所欲。 如何将取决于您的设计和代码,我们无法看到或知道。

标签: c++ list


【解决方案1】:

如果“数据”是默认可构造和可分配的,那么您可以使用默认构造的数据创建节点,然后再分配。

如果类型不允许这样做,或者这有其他问题,那么另一种方法是使用 std::optional<data_type> 作为数据。

这适用于所有数据结构。

请注意,尽管有可能,但先创建节点然后再分配数据通常没有用处。一种更简单、更典型的方法是在填充列表的同时创建节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多