1、用前序方法建立一棵二叉树。 2、编写前序遍历二叉树的程序。 3、编写中序遍历二叉树的程序。 4、编写后序遍历二叉树的程序。 5、编写统计二叉树叶子结点个数的程序
时间: 2024-05-05 13:22:59 浏览: 73
1. 前序建立二叉树的方法:
```
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) :(x), left(nullptr), right(nullptr) {}
};
TreeNode createTree() {
int val;
cin >> val;
if (val == -1) {
return nullptr; // -1 表示该结点为空
}
TreeNode* root = new TreeNode);
root->left = createTree();
root->right = createTree();
return root;
}
```
2. 前序遍历二叉树的程序:
```
void preOrder(TreeNode* root) {
if (!root) {
return;
}
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
```
3. 中序遍历二叉树的程序:
```
void inOrder(TreeNode* root) {
if (!root) {
return;
}
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
```
4. 后序遍历二叉树的程序:
```
void postOrder(TreeNode* root) {
if (!root) {
return;
}
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
```
5. 统计二叉树叶子结点个数的程序:
```
int countLeaf(TreeNode* root) {
if (!root) {
return 0;
}
if (!root->left && !root->right) {
return 1;
}
return countLeaf(root->left) + countLeaf(root->right);
}
```
阅读全文