已知如下所示长度为12的表:(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)
①试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
②若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。
③按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
(1)画出描述上述查找过程的判定树。
(2)计算等搜索概率下搜索成功的平均搜索长度。
(3)计算等搜索概率下搜索不成功的平均搜索长度。
int binsearch(sqtable R,keytype K)
{ low=l;hig=R.n;/*置查找区间初值。low,hig分别标记查找区间的下、上界*/
while(low<=hig)
{ mid=(low+hig)/2;
switch
{ case K==R.item[i].key:return(mid); /*找到,返回位置mid*/
case K<R.item[i].key:______.break;/*缩小区间*/
case K>R.item[i].key:______;break/*缩小区间*/
}
}
return(0); /*若区间长度已为0但仍不成功,则返回0,表示查找不成功*/
}