设计算法按中序输出二叉树中度为2的结点并使用全局变量n统计度为2的结点个数。 void NodeCount(BiTree *T)
时间: 2024-01-22 13:20:07 浏览: 70
求度为2的结点个数-二叉树
以下是按中序遍历输出二叉树中度为2的节点并统计个数的算法:
```
int n = 0; // 全局变量,记录度为2的结点个数
void NodeCount(BiTree *T) {
if (T == NULL) {
return;
}
NodeCount(T->lchild);
if (T->lchild != NULL && T->rchild != NULL) {
printf("%d ", T->data); // 输出度为2的结点
n++; // 统计度为2的结点个数
}
NodeCount(T->rchild);
}
```
在函数中,首先判断当前节点是否为空,若为空则直接返回。然后递归遍历左子树,遍历完后判断当前节点的度是否为2,若为2则输出节点值并统计个数。最后递归遍历右子树。需要注意的是,全局变量`n`需要在函数外先进行初始化为0。
阅读全文