题目
在一棵以二叉链表为存储结构的二叉树中,查找data域值等于key的结点是否存在(找到任何一个满足要求的结点即可),如果存在,则将q指向该结点,否则q赋值为NULL,假设data域为int型
函数代码
//寻找data域等于key的结点,并用q指向它,若不存在,则q指向NULL
void search(BTNode *p, BTNode *&q, int key)//注意,这里的q参数定义为引用型指针,因为q要改变
{
if(p!=NULL)
{
if(p->data==key)
{
q=p;
}
else
{
search(p->lchild,q,key);
search(p->rchild,q,key);
}
}
}
检验函数是否正确的测试程序源码(这里我们随便构造一个二叉树,不去纠结其结构,只为检验函数正确与否)
#include<iostream