Data structures 寻找地图的良好定义,以及是否可以使用树实现地图

Data structures 寻找地图的良好定义,以及是否可以使用树实现地图,data-structures,Data Structures,我正在讨论一些潜在的面试问题,其中一个是你能用树实现一个地图或一个链表吗 但即使在谷歌搜索了一段时间后,我也不清楚映射到底是什么,它与数组或哈希表有什么区别。谁能提供一个清晰的描述 它和链表可以写成树吗?映射,也称为字典或关联数组,是一种允许您使用键查找值的数据结构 Java映射可以实现为HashMap或TreeMap;这表明哈希映射是一种可能的实现,是的,您可以将映射实现为树 它(一张地图)和一个链表可以写成树吗 映射通常用数组表示。要确定条目在地图中的位置,需要计算其键。寻找更好的解释 可以

我正在讨论一些潜在的面试问题,其中一个是你能用树实现一个地图或一个链表吗

但即使在谷歌搜索了一段时间后,我也不清楚映射到底是什么,它与数组或哈希表有什么区别。谁能提供一个清晰的描述


它和链表可以写成树吗?

映射,也称为字典或关联数组,是一种允许您使用键查找值的数据结构

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

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

映射通常用数组表示。要确定条目在地图中的位置,需要计算其键。寻找更好的解释

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


我鼓励您获取关于数据结构的经典文章,它将为您提供大量非常棒的信息。

就我个人而言,我发现维基百科的计算机科学文章总体上非常棒。也就是说,它们不是(通常)教程,如果你对它们所讨论的概念完全不熟悉,你最好去别的地方。正则数组中的索引不能被视为一个键吗?因此,映射与普通数组有何不同?如果您将自己限制为整数键,则可能是这样。但是映射可以使用任何可散列的、不可变的对象来生成一个键。此外,当键间距很大时,数组会变得效率低下(它会变得稀疏)。