c++先序遍历创建二叉树
时间: 2023-11-04 13:04:43 浏览: 98
下面是先序遍历创建二叉树的 C 代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
struct TreeNode* createTree() {
char c;
scanf("%c", &c);
if (c == '#') { // 如果输入 #,表示该节点为空
return NULL;
}
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = c - '0'; // 将字符转换为数字
root->left = createTree(); // 递归创建左子树
root->right = createTree(); // 递归创建右子树
return root;
}
int main() {
printf("请输入先序遍历序列:\n");
struct TreeNode* root = createTree();
return 0;
}
```
在运行程序时,输入先序遍历序列,其中用 # 表示空节点,例如:
```
请输入先序遍历序列:
1 2 4 # # 5 # # 3 # 6 # #
```
上面的输入表示如下的二叉树:
```
1
/ \
2 3
/ \ \
4 5 6
```
程序会递归创建二叉树并返回根节点。
阅读全文