本文主要是介绍7-87 统计二叉树中度为2的结点个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
根据带虚结点的先序序列建立二叉树,计算其度为2的结点个数后输出。
输入格式:
测试数据有多组,处理到文件尾。每组测试数据在一行中输入一个字符串(不含空格且长度不超过80),表示二叉树的先序遍历序列,其中字符*
表示虚结点(对应的子树为空)。
输出格式:
对于每组测试,输出所建立的二叉树中度为2的结点个数。
输入样例:
HDA**C*B**GF*E***
-+a**xb**-c**d**/e**f**
输出样例:
2
5
参考代码
#include <stdio.h>
#include <string.h>// 全局变量,用于存储度为2的结点个数
int count;// 函数声明
void countDegreeTwo(char *preorder, int *index);int main() {char preorder[81];while (scanf("%s", preorder) != EOF) {int index = 0;count = 0;countDegreeTwo(preorder, &index);printf("%d\n", count);}return 0;
}// 递归函数,用于遍历先序序列并计算度为2的结点个数
void countDegreeTwo(char *preorder, int *index) {// 如果到达序列末尾或遇到虚结点,返回
这篇关于7-87 统计二叉树中度为2的结点个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!