我们如何使用单链和双链表模拟/实现数组?

时间:2013-03-20 06:21:41

标签: java arrays data-structures singly-linked-list doubly-linked-list

我已经在Java中实现了单独喜欢的列表和双向链表,现在我的老师让我使用单链和双链表实现数组(在Java中)。我遇到了一些关于如何使用数组实现单链接列表和双链表的解决方案,但我还需要其他方法。谁可以帮我这个事。

1 个答案:

答案 0 :(得分:2)

我不知道您的具体任务。但是,假设通过“实现数组”意味着提供一种执行数组基本功能的方法,那么请考虑数组允许您执行的操作。

数组具有在创建时决定的固定大小并且不可调整大小,因此使用指定其大小的构造函数实现链接列表,并且在此之后不要让列表增大或缩小。在那时创建所有节点可能很有用,但可能并不是严格要求的。

数组提供随机访问(您可以访问或分配给数组中的任何插槽,而不是链接列表的前/后方法),因此实现了在索引处获取和设置的方法。如果你知道链接列表的方法,这应该是一个非常简单的事情(只需从头部或尾部迭代尽可能多的单元格到达指定的索引)。

它需要能够:

// the constructor with size specified.
PseudoArray pa = new PseudoArray(10);

// assigning to arbitrary indices
pa.set(0, "Hello, I am the first element.");
pa.set(5, "I am in the middle of the list.");

// reading from arbitrary indices
pa.get(0);
pa.get(5);

您可能需要添加一些内容,例如确保只有某些类型的对象进入它,但基本上,随机访问和固定的预定大小是最大的问题。

希望我理解你的问题。