设记录R1,R2,…,Rn按关键字值从小到大顺序存储在数组r[1..n]中,在r[n+1]处设立一个监督哨,其关键字值为+∞。试写一查找给定关键字k的算法,并画出此查找过程的判定树,求出在等概率情况下查找成功时的平均查找长度。

admin2017-01-04  27

问题 设记录R1,R2,…,Rn按关键字值从小到大顺序存储在数组r[1..n]中,在r[n+1]处设立一个监督哨,其关键字值为+∞。试写一查找给定关键字k的算法,并画出此查找过程的判定树,求出在等概率情况下查找成功时的平均查找长度。

选项

答案intSearch(rectype r[],int n,keytype k){ //在n个关键字从小到大排列的顺序表中,查找关键字为k的结点 r[n+1].key=MAXINT; //在高端设置监视哨 int i=1: while(r[i].key<k)i++; if(r[n+1].key==k)return(i%(n+1)); else return(0); } 查找过程的判定树是单枝树。本题中虽然表按关键字有序,但进行顺序查找,查找成功的平均查找长度亦为(n+1)/2。

解析
转载请注明原文地址:https://jikaoti.com/ti/j6fjFFFM
0

最新回复(0)