-3

我已经在Java中实现了单行列表和双向链表,现在我的老师要求我使用单向和双向链表(Java)实现数组。我遇到了一些关于如何使用数组实现singlylinkedlist和双向链表的解决方案,但我需要其他方法。谁可以帮我这个事。我们如何使用单向和双向链表来模拟/实现一个数组?

+3

显示你的*解决方案*,可能人们会给你一个手。 – 2013-03-20 06:23:20

+1

首先列出阵列的所有属性。那么告诉哪个属性是你的问题? – Azodious 2013-03-20 06:24:47

+1

如果你分享你的尝试,人们会很乐意提供帮助。与此同时,我建议查看[这篇文章](http://mattgemmell.com/2008/12/08/what-have-you-tried/)。 – jahroy 2013-03-20 06:25:50

回答

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); 

您可能需要添加一些东西像确保只有特定类型的对象得到它,但基本上,随机接入和固定,预定大小最大的问题。

希望我已经理解你的问题。

+0

这是一个巨大的答案。欢迎来到StackOverflow! – jahroy 2013-03-20 06:55:46