【笔记】
当关键字的全域U比较小时,直接寻址。
【练习】
11.1-1 考虑由一个长度为m的直接寻址表T表示的动态集合S。给出一个查找S的最大元素的算法过程。所给的过程在最坏情况下的运行时间是什么?
遍历动态集合中的所有元素O(m)
11.1-2 位向量是一种仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应该是O(1)。
B[i]为1表示元素i存在,为0则不存在。
11.1-3 说明如何实现一个直接寻址表,使各元素的关键字都不必相同,且各元素可以有卫星数据。所有三种字典操作(INSERT,DELETE和SEARCH)的时间应为O(1)。
相同关键字的元素由链表链接。
*11.1-4 我们希望通过利用在一个非常大的数组上直接寻址的方式来实现字典。开始时,该数组中可能存在废料,但要对整个数组进行初始化是不实际的,因为该组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储的对象占用O(1)的空间;操作SEARCH,INSERT和DELETE的时间为O(1);对数据结构初始化的时间为O(1)。