data-structures - 如何在数组中实现链表?

标签 data-structures

This question提到可以在数组中实现链表。

虽然我可以想象如何用多个数组来做到这一点,但如何用一个数组来完成?

编辑:考虑到需要从列表中删除和插入项目,这是否可以有效地完成 - 大概需要识别数组中的空闲元素?

最佳答案

如果它是一个对象数组,那么每个对象都会存储一个值和一个指向下一个对象的指针。

[0] -> {"a",1}
[1] -> {"b",2}
[2] -> {"c",4}
[3] -> {"1",5}
[4] -> {"d",7}
[5] -> {"2",6}
[6] -> {"3",8}
[7] -> {"e",-1}
[8] -> {"4",-1}

所以这里我有 2 个链表,第一个:

"a"-> "b"-> "c"-> "d"-> "e"

第二个:

“1”->“2”->“3”->“4”

两者都使用 -1 的索引作为列表的结尾。

然后您将需要多个指针(每个列表一个)来确定您在列表中的位置。

老实说,我什至不确定我是否理解这个问题,但无论如何都想抛出想法。

关于data-structures - 如何在数组中实现链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665607/

相关文章:

java - 斐波那契堆问题

javascript - 如何使用 native JavaScript 合并数组内的对象

algorithm - 找出比n中数字相同的最大数

c++ - 基于数组的有界缓冲区中的空元素

c - 将字符串构建为链表

java - 实现数据结构和参数查询

algorithm - OEIS如何进行后续检索?

algorithm - CLRS 是否完全准确地指出 max-heapify 运行时间由重复 `T(n) = T(2n/3) + O(1)` 描述?

c - 如何循环结构体?

Python 数组内存占用与列表