这个问题提到可以在数组中实现链表。
虽然我可以想象如何使用多个阵列执行此操作,但是如何使用单个阵列执行此操作?
编辑:这样做是否可以有效地考虑到将需要从列表中删除并插入项目-大概需要标识数组中的自由元素?
如果是对象数组,则每个对象将存储一个值和一个指向下一个对象的指针。
[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}
Run Code Online (Sandbox Code Playgroud)
因此,这里有2个链表,第一个是:
“ a”->“ b”->“ c”->“ d”->“ e”
第二个:
“ 1”->“ 2”->“ 3”->“ 4”
两者都使用索引-1作为列表的末尾。
然后,您将需要多个指针(每个列表一个)来确定您在列表中的位置。
老实说,我什至不确定我是否理解这个问题,但无论如何都想提出一些想法。
例如,您可以通过将第一个数据项放入数组的元素中,并将下一项的索引放入第二个元素中来获得整数链接列表。这将限制您存储与索引兼容/可转换为索引的类型。