如何使用
实现C / C ++中的链表struct node{
int data;
struct node *next;
}
只使用两个数组,一个用于数据,另一个用于下一个节点
答案 0 :(得分:0)
当然可以。这里有一些关于这个主题的讨论:Is a Linked-List implementation without using pointers possible or not?
一种实现方式是创建一个数组,并将节点存储在数组中。维基百科有一个很好的伪代码示例:http://en.wikipedia.org/wiki/Linked_list(使用节点数组的链接列表部分)
答案 1 :(得分:0)
您定义两个数组 1,数据数组 2.索引数组 每个数据数组将包含数据值,索引数组中的相应索引将包含value元素指向的下一个节点 您需要跟踪最后添加的值,因为它提供了Index数组的索引,您可以在其中添加该值节点指向的下一个值的索引。 添加数据值也很容易,只需在数据数组中添加一个新值,然后 用数据元素中数据值的索引填充Index数组中的前一个元素值。
数据数组2,5,3,1,2。 索引数组1,2,3,4,0(0表示未指向任何数据元素)
添加元素:2、5、3、1、2、77。 索引数组1,2,3,4,5,0。
删除元素:2,5,0,1,2,77 索引数组1,3,0,4,5,0。