用c++实现二叉树的建立
时间: 2023-10-30 18:50:28 浏览: 86
以下是用C语言实现二叉树建立的示例代码:
#include <stdio.h>
#include <stdlib.h>
// 二叉树节点结构体
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子树
struct TreeNode* right; // 右子树
} TreeNode;
// 创建一个新的节点
TreeNode* createNode(int val) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->val = val;
node->left = NULL;
node->right = NULL;
return node;
}
// 递归构建二叉树
TreeNode* buildTree() {
int val;
printf("请输入节点的值(-1表示空节点):");
scanf("%d", &val);
if (val == -1) {
return NULL;
}
TreeNode* node = createNode(val);
node->left = buildTree();
node->right = buildTree();
return node;
}
// 前序遍历二叉树
void preOrder(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val);
preOrder(root->left);
preOrder(root->right);
}
int main() {
TreeNode* root = buildTree();
printf("前序遍历结果:");
preOrder(root);
return 0;
}
在这个示例代码中,我们定义了一个二叉树节点结构体,包含了节点的值、左子树和右子树。我们使用createNode函数创建一个新的节点,并返回该节点的指针。buildTree函数使用递归的方式构建二叉树,每次读入一个节点的值,并根据该值是否为-1来判断是否继续构建该节点的左子树和右子树。preOrder函数使用前序遍历的方式遍历二叉树。最后在main函数中调用buildTree函数构建二叉树,并使用preOrder函数遍历输出结果。
阅读全文