按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树构造二叉链表表示的二叉树T
时间: 2024-04-19 17:05:29 浏览: 114
由于需要构造二叉树,我们需要先定义一个二叉树的结构体:
```c++
struct TreeNode {
char val;
TreeNode* left;
TreeNode* right;
TreeNode(char x) : val(x), left(NULL), right(NULL) {}
};
```
然后,我们可以使用递归的方式构造二叉树。具体来说,我们首先读入一个字符,如果该字符是空格,则返回空指针;否则,我们创建一个新的结点,并为其赋值为读入的字符,然后递归构造左子树和右子树,将左子树和右子树的根结点分别作为当前结点的左右子结点。
完整代码如下:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
char val;
TreeNode* left;
TreeNode* right;
TreeNode(char x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* buildTree() {
char c;
cin >> c;
if (c == ' ') {
return NULL;
}
TreeNode* root = new TreeNode(c);
root->left = buildTree();
root->right = buildTree();
return root;
}
int main() {
TreeNode* root = buildTree();
return 0;
}
```
阅读全文