如何在没有的情况下在C/C++中实现链表
struct node{
int data;
struct node *next;
}
只使用两个数组,一个用于数据,另一个用于下一个节点
当然可以。这里有一些关于这个主题的讨论:不使用指针的链表实现可能吗?
一种实现是创建一个数组,并将节点存储在数组中。维基百科有一个很好的伪代码示例:http://en.wikipedia.org/wiki/Linked_list(使用节点数组的链接列表部分)
您定义了两个数组1.数据阵列2.索引数组每个数据数组都将包含数据值,index数组中相应的索引将包含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。