1)创建一棵二叉树(括号表示法/先序创建),然后输出每个结点; 2)求给定二叉树的所有结点个数; 3)输出该树的叶子结点及叶子结点个数;
时间: 2024-12-14 18:15:16 浏览: 26
创建一棵二叉树可以使用递归的方式,通常通过先序遍历(根节点 -> 左子树 -> 右子树)的方式来构建,并使用括号表示法。例如,对于如下的二叉树:
```
1
/ \
2 3
/ \
4 5
```
我们可以这样表示和创建:
```plaintext
(1 (2 () 3 (4 () ()) (5 () ())))
```
按照这个顺序,我们首先创建根节点1,然后左子节点2和右子节点3,再分别处理2和3的子节点。
要计算所有节点的个数,只需要从根节点开始,每次访问到一个节点就计数加一。对于这棵树,共有5个节点。
至于叶子节点(没有子节点的节点),在这棵树中,节点2、4 和 5 是叶子节点。叶子节点的总数是3。
下面是伪代码示例:
```python
def create_binary_tree(node_str):
def helper(s):
if not s:
return None
values = s.split()
root = TreeNode(int(values[0]))
left = helper(values[1]) if len(values) > 1 else None
right = helper(values[2]) if len(values) > 2 else None
root.left = left
root.right = right
return root
tree = helper(node_str)
# 计算节点总数
count_nodes(tree)
# 找出并统计叶子节点
find_leaf_nodes(tree)
# 具体函数实现...
```
阅读全文