二叉树的建立与先序遍历的输出
时间: 2023-11-05 17:03:02 浏览: 75
二叉树是由结点及连接它们的边组成的数据结构,每个结点最多有两个子结点。其中一个为左子结点,另一个为右子结点。
二叉树的建立可以通过递归的方式实现。每次递归时,先读入当前结点的值,然后再递归读入左子树和右子树。
以下是一个简单的二叉树建立的示例代码:
```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;
cin >> val;
if (val == -1) {
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = buildTree();
root->right = buildTree();
return root;
}
```
上述代码中,当读入的值为 -1 时,表示当前结点为空,返回 NULL。否则,创建一个新结点,并递归构建左右子树。
接下来,我们可以通过先序遍历的方式输出二叉树的值。先序遍历是指先输出当前结点的值,再递归输出左子树和右子树。
以下是一个二叉树先序遍历的示例代码:
```c++
void preorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
cout << root->val << " ";
preorderTraversal(root->left);
preorderTraversal(root->right);
}
```
上述代码中,首先输出当前结点的值,然后递归输出左子树和右子树。
综上所述,二叉树的建立和先序遍历输出可以通过递归的方式实现。
阅读全文