为什么要做外贸网站,凤凰军事新闻最新消息,上海网页设计公司兴田德润电话,对ui设计的理解和认识题目描述 计算一颗二叉树包含的叶子结点数量。 提示#xff1a;叶子是指它的左右孩子为空。 建树方法采用“先序遍历空树用0表示”的方法#xff0c;即给定一颗二叉树的先序遍历的结果为AB0C00D00#xff0c;其中空节点用字符‘0’表示。 输入 第一行输入一个整数t#xff…题目描述 计算一颗二叉树包含的叶子结点数量。 提示叶子是指它的左右孩子为空。 建树方法采用“先序遍历空树用0表示”的方法即给定一颗二叉树的先序遍历的结果为AB0C00D00其中空节点用字符‘0’表示。 输入 第一行输入一个整数t表示有t个测试数据 第二行起输入二叉树先序遍历的结果空树用字符‘0’表示输入t行 输入样例 3 AB0C00D00 AB00C00 ABC00D00E00 输出 逐行输出每个二叉树的包含的叶子数量 输出样例 2 2 3 代码
#include iostream
using namespace std;struct Node{char data;Node *left;Node *right;
};class Tree{
public:Node *root;int leafNum0;void create(Node *t){char c;cin c;if(c 0){t NULL;}else{t new Node;t-data c;create(t-left);create(t-right);}}void getLeaf(Node *t){if(t NULL){return;}else{if(t-left NULL t-right NULL){ //无左右孩子则为叶子结点leafNum;}getLeaf(t-left);getLeaf(t-right);}}
};int main()
{int t;cin t;while(t--){Tree tree;tree.create(tree.root);tree.getLeaf(tree.root);cout tree.leafNum endl;}return 0;
}