我给出的功课Introduction to Algorithms锻炼11.1-3
肚里如下:实现直接地址表
建议如何落实其中存储的元素的按键并不需要是不同的直接访问表并且元素可以具有卫星数据。所有三种字典操作(插入,删除和搜索)应该在O(1)时间内运行。不要忘记,Delete将一个指向要删除的对象的指针作为参数,而不是一个键。
那么,插入是没有问题的,因为它只是意味着在表中适当的位置创建一个链表(如果它尚不存在)并添加元素。 Search被赋予一个键,可以返回任何与键匹配的元素,因此它意味着我们需要返回表中匹配列表的头部。
我的问题是删除操作。如果我修改对象来添加一个指向其链接列表中节点的指针,那么我可以在O(1)中删除,但我不确定我是否允许更改该对象。有没有办法做到这一点,而不改变给定的对象?
+1用于发布作业问题并披露并显示您已尝试过某些东西。欢迎来到SO – JoshJordan 2010-01-03 19:28:02
标准的香草链接列表不会给你O(1)的搜索性能。 – 2010-01-03 19:29:02
@GregS - 我说过我可以用匹配键返回任何元素,这意味着我可以返回列表的头部,这是O(1)。 – 2010-01-03 19:55:37