我的作业是算法介绍练习11.1-3
,内容如下:
建议如何实现一个直接访问表,其中存储元素的键不需要是不同的,并且元素可以有卫星数据。所有三个字典操作(插入、删除和搜索)都应该在 O(1) 时间内运行。不要忘记 Delete 将指向要删除的对象的指针作为参数,而不是键。
好吧,插入是没有问题的,因为它只是意味着在表中的适当位置创建一个链表(如果它不存在)并将元素添加到其中。给定一个键的搜索可以返回任何与该键匹配的元素,所以它只是意味着我们需要返回表中匹配列表的头部。
我的问题是删除操作。如果我修改对象以向其添加指向其在链表中的节点的指针,那么我可以在O(1)中删除,但我不确定是否允许更改该对象。有没有办法在不改变给定对象的情况下做到这一点?