试题与答案

二叉排序树的类型定义如下: typedef struet BSTNode{//二叉

题型:问答题

题目:

二叉排序树的类型定义如下: typedef struet BSTNode{//二叉排序树的结点结构int data; //数据域struct BSTNode*lchild,*rchild;//左、右孩子指针 }BSTNode,*BSTree; 设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

答案:

参考答案:

解析:(P71)参考答案:之一:
void count(BSTree T,int a,int*sum){
//以sum所指单元统计二叉排序树中元素值小于a的结点个数,其初值为0
if(T){
count(T—>lchild,a,sum);
if(T—>data (*sum)++;
count(T—>rchild,a,sum);
}
}
}
参考答案:之二:
int count(BSTree T,int a){
//统计二又排序树中元素值小于a的结点个数
int sum;
if(!T)return 0;
else{
sum=count(T—>lchild,a);
if(T—>data<a)
return sum+1+count(T—>rchild,a);
else return sum;
}
}

试题推荐
微信公众账号搜索答案