1、编写程序按屏幕提示用前序方法建立一棵二叉树,如下图如示。 程序如下:
时间: 2023-06-10 08:06:52 浏览: 62
抱歉,我无法在这里直接运行程序代码。以下是C++语言的示例代码,可以帮助您理解如何使用前序遍历构建二叉树:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* buildTree() {
int val;
cout << "Enter value (-1 for no node): ";
cin >> val;
if (val == -1) {
return NULL;
}
TreeNode* root = new TreeNode(val);
cout << "Enter left child of " << val << endl;
root->left = buildTree();
cout << "Enter right child of " << val << endl;
root->right = buildTree();
return root;
}
void preOrder(TreeNode* root) {
if (root == NULL) {
return;
}
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
int main() {
TreeNode* root = buildTree();
cout << "Pre-order traversal: ";
preOrder(root);
return 0;
}
```
程序首先定义了一个二叉树节点的结构体,然后使用递归函数 `buildTree()` 实现了二叉树的前序建立。在每个递归函数中,程序会询问用户输入当前节点的值,并根据输入情况递归构建左子树和右子树。最终返回根节点指针。
程序的另一个函数 `preOrder()` 实现了二叉树的前序遍历,输出每个节点的值。
在 `main()` 函数中,程序调用 `buildTree()` 建立二叉树,并输出前序遍历结果。
需要注意的是,由于程序使用了递归方式建立二叉树,输入节点值时需要按照前序遍历的顺序输入,即先输入根节点的值,再输入左子树的值,最后输入右子树的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)