使用c语言创建二叉树并用递归方式赋值,最后对其进行后序遍历
时间: 2024-01-23 09:31:29 浏览: 70
好的,以下是使用C语言创建二叉树并用递归方式赋值,并对其进行后序遍历的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 二叉树结点的结构定义
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 创建二叉树
TreeNode* createBinaryTree() {
int data;
printf("请输入结点的值(输入-1表示空结点): ");
scanf("%d", &data);
if (data == -1) {
return NULL;
}
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->data = data;
printf("请输入 %d 的左子结点: \n", data);
newNode->left = createBinaryTree();
printf("请输入 %d 的右子结点: \n", data);
newNode->right = createBinaryTree();
return newNode;
}
// 后序遍历二叉树
void postOrderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
// 遍历左子树
postOrderTraversal(root->left);
// 遍历右子树
postOrderTraversal(root->right);
// 访问根结点
printf("%d ", root->data);
}
int main() {
TreeNode* root = NULL;
printf("创建二叉树:\n");
root = createBinaryTree();
printf("后序遍历结果:");
postOrderTraversal(root);
printf("\n");
return 0;
}
```
你可以按照提示依次输入每个结点的值,-1 表示空结点。创建完成后,程序将输出后序遍历的结果。
注意:在实际使用中,记得释放二叉树的内存空间,以避免内存泄漏。
阅读全文