【问题标题】:Individual or single head for dynamic array of linked list链表动态数组的单头或单头
【发布时间】:2017-09-11 06:03:09
【问题描述】:

如果我要创建一个链表的动态数组,每个索引是否都有自己的头,还是整个数组只有一个头?我还没有代码,因为我现在只是在处理伪代码,但我会举个例子..

  1. 使用 next 指针和 int 数据创建一个名为 arrayNode 的结构

  2. 声明并初始化list的数组 -> arrayNode *array[size] = new arrayNode[size]

  3. 做一个头 -> arrayNode *head

现在,如果我想将一个值放入 array[0],我检查 head 是否为 NULL,如果是,我将这个值设为 head

  1. 数组[0] = 新数组节点(值)
  2. head = array[0]

我不确定这是否是正确的做法,但我认为它是....无论如何,如果是,那么数组 [1] 呢? head 仍然为 NULL 吗?还是我必须为每个索引声明不同的头??

如果这不是正确的方法,那么回到第一格。

谢谢

【问题讨论】:

  • 链表通常没有随机访问,所以不需要数组。
  • 好吧,我只需要访问我存储链表的索引,不一定是链表本身。我正在尝试建立一个邻接列表,这就是我认为它会(可能)工作的方式。

标签: c++ arrays linked-list dynamic-arrays


【解决方案1】:

正如您所说,您正在尝试构建邻接列表。所以在那种情况下:

  • 制作一个大小等于图中顶点数的数组
  • 为图中的每个顶点使用单独的头部

如果图中顶点的大小数量不固定,则:

  • 创建一个包含顶点信息的新类
  • 重载索引,即 [] 运算符以提供正确的节点。但是回到 [] 运算符重载的代码中,您必须管理逻辑。

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 2021-02-18
    • 2016-05-22
    • 2014-08-06
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2020-10-31
    • 2023-03-29
    相关资源
    最近更新 更多