用C++代码写一个二叉树的建立
时间: 2023-09-03 13:27:15 浏览: 142
### 回答1:
好的,这是一个二叉树的建立的 C 代码示例:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
TreeNode* createTree(int data, TreeNode *left, TreeNode *right) {
TreeNode *new_node = (TreeNode*) malloc(sizeof(TreeNode));
new_node->data = data;
new_node->left = left;
new_node->right = right;
return new_node;
}
int main() {
// 创建叶子节点
TreeNode *leaf1 = createTree(1, NULL, NULL);
TreeNode *leaf2 = createTree(2, NULL, NULL);
TreeNode *leaf3 = createTree(3, NULL, NULL);
TreeNode *leaf4 = createTree(4, NULL, NULL);
TreeNode *leaf5 = createTree(5, NULL, NULL);
TreeNode *leaf6 = createTree(6, NULL, NULL);
TreeNode *leaf7 = createTree(7, NULL, NULL);
// 创建二叉树
TreeNode *root = createTree(0,
createTree(1, leaf1, leaf2),
createTree(2,
createTree(3, leaf3, leaf4),
createTree(4, leaf5, leaf6)));
}
```
在这个代码中,我们定义了一个名为 `TreeNode` 的结构体,表示一个二叉树的节点。每个节点都有一个数据域和两个指针域,分别指向它的左儿子和右儿子。
我们还定义了一个名为 `createTree` 的函数,用于创建一个新的二叉树节点。在 `main` 函数中,我们创建了七个叶子节点,然后使用这些叶子节点和 `createTree` 函数创建了一棵二叉树。
这仅仅是一个简单的二叉树建立的例子,你可以根据自己的需要进行
### 回答2:
要使用C代码建立一个二叉树,我们可以使用结构体来表示每个节点,每个结构体包含一个值和两个指向左右子节点的指针。
下面是一个使用C代码构建二叉树的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct BinaryTreeNode {
int value;
struct BinaryTreeNode* left;
struct BinaryTreeNode* right;
} BinaryTreeNode;
// 创建新的二叉树节点
BinaryTreeNode* createNode(int value) {
BinaryTreeNode* newNode = (BinaryTreeNode*)malloc(sizeof(BinaryTreeNode));
if(newNode != NULL) {
newNode->value = value;
newNode->left = NULL;
newNode->right = NULL;
}
return newNode;
}
// 构建二叉树
BinaryTreeNode* buildTree() {
BinaryTreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
root->right->left = createNode(6);
root->right->right = createNode(7);
return root;
}
// 先序遍历二叉树
void preOrderTraversal(BinaryTreeNode* root) {
if(root != NULL) {
printf("%d ", root->value);
preOrderTraversal(root->left);
preOrderTraversal(root->right);
}
}
int main() {
BinaryTreeNode* root = buildTree();
printf("二叉树的先序遍历结果:");
preOrderTraversal(root);
return 0;
}
```
在这个示例中,我们定义了一个BinaryTreeNode结构体,其中包含一个值变量以及左右子节点的指针。我们使用createNode函数来创建新的二叉树节点,并将相应的值赋给节点。然后,在buildTree函数中,我们以先序方式手动指定了二叉树的结构。最后,在主函数中,我们调用preOrderTraversal函数来对二叉树进行先序遍历,并打印结果。
以上就是使用C代码构建二叉树的一个简单示例。可以根据具体需求对代码进行修改和扩展。
### 回答3:
二叉树是一种非常常见的数据结构,它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。为了用C代码建立一个二叉树,我们需要定义一个节点结构,然后实现二叉树的插入操作。
首先,我们定义一个节点结构,包含一个整数值和左右子节点的指针。
```c
typedef struct TreeNode {
int value;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
```
然后,我们定义一个函数来插入节点到二叉树中。插入的规则是,如果新节点的值小于当前节点的值,就插入到左子树中;如果新节点的值大于等于当前节点的值,就插入到右子树中。这个函数可以使用递归的方式实现。
```c
void insert(TreeNode** root, int value) {
if (*root == NULL) {
*root = malloc(sizeof(TreeNode));
(*root)->value = value;
(*root)->left = NULL;
(*root)->right = NULL;
return;
}
if (value < (*root)->value) {
insert(&((*root)->left), value);
} else {
insert(&((*root)->right), value);
}
}
```
最后,我们可以在主函数中使用这个插入函数来建立一个二叉树。
```c
int main() {
// 创建根节点
TreeNode* root = NULL;
// 插入节点
insert(&root, 5);
insert(&root, 3);
insert(&root, 8);
insert(&root, 1);
insert(&root, 4);
insert(&root, 7);
insert(&root, 9);
// 打印二叉树的节点值
printTree(root);
return 0;
}
```
这就是用C代码建立二叉树的基本过程,通过定义节点结构和实现插入函数,我们可以灵活地插入节点并构建出一个完整的二叉树。
阅读全文