链接列表不使用指针和结构

时间:2014-08-29 15:10:20

标签: linked-list

如何使用

实现C / C ++中的链表
struct node{
  int data;
  struct node *next;
}

只使用两个数组,一个用于数据,另一个用于下一个节点

2 个答案:

答案 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。