用c语言后序建立一棵二叉树
时间: 2023-10-03 17:07:17 浏览: 52
下面是用C语言后序建立一棵二叉树的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct TreeNode {
char val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 后序遍历建立二叉树
TreeNode* buildTree() {
char c;
scanf("%c", &c);
if (c == '#') { // 如果输入的字符是#,表示该节点为空
return NULL;
}
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode)); // 创建节点
node->val = c;
node->left = buildTree(); // 递归建立左子树
node->right = buildTree(); // 递归建立右子树
return node;
}
int main() {
printf("请输入后序遍历序列(以#表示空节点):\n");
TreeNode* root = buildTree(); // 建立二叉树
printf("二叉树建立成功!\n");
return 0;
}
```
说明:
1. 定义了一个二叉树结构体,包括节点值和左右子树指针。
2. `buildTree` 函数是递归的,每次读入一个字符,如果是 `#` 表示该节点为空,否则创建一个新节点,然后分别递归建立左右子树。
3. `main` 函数中先提示用户输入后序遍历序列,并调用 `buildTree` 函数建立二叉树。