- 问题描述
写出一个创建proto-vEB(u)结构的伪代码 - 问题求解
proto-vEB(u)结构分为两种情况讨论:
①如果u=2,那么该结构只包含一个u和一个两位的位向量A;
②如果u>2,那么该结构的除了底层结点外都包含一个u、一个proto-vEB(u√)结构和一个位向量cluster(其每个元素指向一个proto-vEB(u√))。
因此,可以得到proto-vEB(u)递归分配空间的伪代码,并进行适当的初始化。
MAKE-PROTO-vEB(u)
Allocate-interger u
V.u=u
if u==2
Allocate-Array A of size 2
V.A[1]=V.A[0]=0
else
V.summary=MAKE-PROTO-vEB(sqrt(u))
for i=0 to sqrt(u)-1
V.cluster[i]=MAKE-PROTO-vEB(sqrt(u))