2010-12-20 48 views
2

我正在经历一些潜在的面试问题,其中一个问题是你可以使用树实现一个地图或链表。寻找一个好的地图定义,如果地图可以用树实现

但即使经过一段时间的搜索,我并不清楚地理清楚地图是什么,它与数组或哈希表有什么不同。任何人都可以提供明确的描述。

可以和一个链表写成一棵树吗?

+1

就个人而言,我发现维基百科的计算机科学文章总的来说非常好。也就是说,他们不是*(通常)是教程,如果你完全不熟悉他们正在讨论的概念,那么你最好去别处。 – 2010-12-20 00:47:06

回答

0

可以将它(一张地图)和一个链表写成一棵树吗?

地图是通常用数组表示。要确定某个条目在地图中的位置,您需要计算其密钥。请看here以获得更好的解释。

可以使用列表实现树(具有未确定数量的节点)(有关进一步讨论,请参见here)。列表通常不作为树实现。

我鼓励你得到this book这是一个经典的数据结构,并会给你很多非常棒的信息。

1

地图,又名词典或关联数组,是一种数据结构,允许您使用键查找值。

Java Map可以实现为HashMap或TreeMap;这表明哈希映射是一种可能的实现,是的,你可以实现一个映射为树。

+0

不能将常规数组中的索引视为关键字吗?因此,地图与普通香草阵列有何不同? – 2010-12-20 01:06:13

+0

它可以是,如果你限制自己的整数键。但是一个Map可以使用任何可排序的,不可变的Object作为关键字。 – duffymo 2010-12-20 01:25:11

+0

此外,当密钥间隔很大时(它会变得稀疏),数组变得效率低下。 – lijie 2010-12-21 10:48:07