【发布时间】:2016-09-11 10:25:26
【问题描述】:
我正在努力理解直接地址表。根据下图(来源:Cormer's Introduction to Algorithms),您定义了一个大数组来存储对象。必须是存储对象的字段之一是整数类型。该整数定义了对象数组中的位置。它在这里被命名为key。
因此,如果您想执行搜索或删除,您只能使用密钥(但不能使用卫星数据)执行此操作。无法对卫星数据进行搜索。我并没有真正看到这种结构的好处,因为它限制了您只能基于键进行搜索,这些键始终是整数,而不是感兴趣的实际卫星数据。为了使这种数据结构有用,需要有一种方法可以从卫星数据中计算密钥,对吧?
【问题讨论】:
-
键可以是任何东西,不必是整数。不过,它确实必须有一个哈希码。 “卫星”数据在设计上不可搜索,它是
map:key->value的实现,您可以通过key快速访问,但不能通过value访问(此外,您可以有多个相同的值,但不能输入map,您可以在multimap中同时拥有两者。如果您确实需要同时访问两者,则需要实现双向映射,这是一种不同的数据结构。
标签: algorithm search data-structures