单个或单个头用于链表的动态数组

Individual or single head for dynamic array of linked list

本文关键字:动态 数组 链表 用于 单个头 单个      更新时间:2023-10-16

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

  1. 创建一个名为 arrayNode 的结构,其中包含下一个指针和一个 int 数据

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

  3. 制作一个头 ->arrayNode *头

现在,如果我想将一个值放入数组 [0] 中,我会检查 head 是否为 NULL,如果是,我将该值设为 head

  1. array[0] = new arrayNode(value)
  2. 头部 = 数组[0]

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

如果这不是正确的方法,那么回到原点。

谢谢

正如您所评论的那样,您正在尝试构建邻接列表。所以在这种情况下:

  • 使数组的大小等于图形中的顶点数
  • 对于图形中的每个顶点,使用单独的头部

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

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