用于动态链表列表的单个或单个头

时间:2017-04-14 23:51:53

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

如果我要创建一个动态的链表列表,那么每个索引都有它自己的头部,或者整个阵列会有一个单独的头?我现在还没有代码,因为我现在正在研究伪代码,但我会给出一个例子..

  1. 使用下一个指针和一个int数据

  2. 创建一个名为arrayNode的结构
  3. 声明并初始化列表数组 - > arrayNode * array [size] = new arrayNode [size]

  4. 打个头 - > arrayNode * head

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

    1. array [0] = new arrayNode(value)
    2. head = array [0]
    3. 我不确定这是否是正确的做法,但我认为它是......无论如何,如果是,那么数组[1]怎么样?头还是空的吗?或者我必须为每个索引声明一个不同的头?

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

      由于

1 个答案:

答案 0 :(得分:0)

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

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

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

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