閱讀以下說明、C 函數(shù)和問題,將解答填入答題紙的對應欄內(nèi)。
【說明】
二叉查找樹又稱為二叉排序樹,它或者是一棵空樹,或者是具有如下性質的二叉樹:
若它的左子樹非空,則其左子樹上所有結點的鍵值均小于根結點的鍵值;
若它的右子樹非空,則其右子樹上所有結點的鍵值均大于根結點的鍵值;
左、右子樹本身就是二叉查找樹。
設二叉查找樹采用二叉鏈表存儲結構,鏈表結點類型定義如下:
typedef struct BiTnode{
int key_value; /*結點的鍵值,為非負整數(shù)*/
struct BiTnode *left,*right; /*結點的左、右子樹指針*/
}*BSTree;
函數(shù)find_key(root, key)的功能是用遞歸方式在給定的二叉查找樹(root指向根結點)中查找鍵值為key的結點并返回結點的指針;若找不到,則返回空指針。
【函數(shù)】
BSTree find_key(BSTree root, int key)
{
if ( (1) )
return NULL;
else
if (key == root-> key_value)
return (2) ;
else if (key < root -> key_value)
return (3) ;
else
return (4) ;
}
【問題1】
請將函數(shù)find_key中應填入(1)~(4)處的字句寫在答題紙的對應欄內(nèi)。
【問題2】
若某二叉查找樹中有n個結點,則查找一個給定關鍵字時,需要比較的結點個數(shù)取決于 (5) 。