请编写函数SearchXNum,计算任意二叉树T中其数据域的值大于或等于x的结点的个数并返回该值。函数原型如下: SearchXNum(BinTree *T,intx);∥返回二叉树T中数据"> 请编写函数SearchXNum,计算任意二叉树T中其数据域的值大于或等于x的结点的个数并返回该值。函数原型如下: SearchXNum(BinTree *T,intx);∥返回二叉树T中数据">

已知二叉树的结点类型定义如下: 请编写函数SearchXNum,计算任意二叉树T中其数据域的值大于或等于x的结点的个数并返回该值。函数原型如下: SearchXNum(BinTree *T,intx);∥返回二叉树T中数据

已知二叉树的结点类型定义如下: 请编写函数SearchXNum,计算任意二叉树T中其数据域的值大于或等于x的结点的个数并返回该值。函数原型如下: SearchXNum(BinTree *T,intx);∥返回二叉树T中数据域的值大于或等于x的结点的个数。


【正确答案】:int LTXNum(BinTree *t,int x){ int n;if(T==null)return 0;if(T->data>=x)n=1;else n=0;return n+LTXNum(T->lchild,x)+LTXNum(T->rchild,x)}
【题目解析】:算法的思想是根结点如果为空,表示该二叉为空树,返回0。如果根结点值大于或等X,n=1,并返回结点的值。然后用递归算法,分别把左子树和右子树大于X的结点个数算出来并返回值,最后返回结点的个数。
Top