查找二进制排序树
需要在二进制排序树中查找指定的关键字,并输出搜索过程中经过的节点。
函数接口定义:
typedef int KeyType//定义关键字类型
Typewstruct节点//记录类型
{
KeyType键;//关键字项
结构节点*lchild,* rchild//左右子指针
} BSTNode
int ReadData(int a[]);//在键盘上输入几个整数,按顺序存储在数组A中,返回输入的整数个数。由裁判程序执行,细节未显示。
BSTNode *CreatBST(KeyType A[],int n);//依次读取数组A中的关键字,依次构建二进制排序树,返回根节点指针。由裁判程序执行,细节未显示。
int SearchBST(BSTNode *bt,KeyType k);//从函数中的根节点输出节点路径,如果找到K则返回1,否则返回0。
裁判测试程序样例:
int main()
{
BSTNode * bt=NULL
KeyType k;
int a[100],N;
N=读取数据(a);//用键盘输入几个整数,存储在数组a[]中
bt=CreatBST(a,N);//根据数组a创建一个BST树
scanf('%d ',k);//输入要搜索的关键字K
If (SearchBST(bt,k)) //在SearchBST函数中,输出从根节点开始的节点路径。如果找到k,则返回1;否则,它返回0。
printf(' : found ');
其他
printf(' : not Found \ n ');
返回0;
}
/*请在此处填写答案*/
输入样例1:
九
4 9 0 1 8 6 3 5 7
6结尾没有空行
输出样例1:
找到4 9 8 6 :
结尾没有空行。
提示:SearchBST函数中输出语句的格式如下:printf('%d ',Bt-key);
输入样例2:
九
4 9 0 1 8 6 3 5 7
10结尾没有空行
输出样例2:
4 9 :未找到
结尾没有空行。
提示:SearchBST函数中输出语句的格式如下:printf('%d ',Bt-key);
ANSWER
int SearchBST(BSTNode *bt,KeyType k){ 0
if(!bt)
返回0;
printf(“% d”,Bt-key);
if(k==bt-key)
返回1;
否则if(k bt-key)
返回SearchBST(bt-lchild,k);//继续在左侧子树中搜索
其他
返回search BST(Bt-archild,k);//继续在右子树中搜索
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84606.html