创建并初始化一个事例二叉树
时间: 2024-10-10 16:03:52 浏览: 21
//初始化中序线索二叉树函数-树和二叉树
创建和初始化一个二叉树实例通常涉及定义一个结构体来表示二叉树的节点,并设置节点值以及指向左孩子和右孩子的指针。下面是一个C语言的例子,展示如何创建一个简单的二叉树:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int data; // 节点数据
struct TreeNode* left; // 左孩子指针
struct TreeNode* right; // 右孩子指针
} Node;
// 初始化一个新的二叉树节点
Node* createNewNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 示例:创建一个特定结构的二叉树
void createExampleTree(Node** root) {
*root = createNewNode(10); // 根节点
(*root)->left = createNewNode(5); // 根节点的左子树
(*root)->left->right = createNewNode(15); // 左子树的右子树
(*root)->right = createNewNode(20); // 根节点的右子树
}
// 打印二叉树(这里仅做演示,实际应用中需实现)
void printInorder(Node* node) {
if (node != NULL) {
printInorder(node->left);
printf("%d ", node->data);
printInorder(node->right);
}
}
int main() {
Node* root = NULL;
createExampleTree(&root);
printf("Binary Tree Example:\n");
printInorder(root); // 输出: 5 10 15 20
// 清理内存
if (root) {
free(root->left);
free(root->right);
free(root);
}
return 0;
}
```
这个例子中,`createExampleTree`函数创建了一个根节点为10,左子树有5和15,右子树有20的二叉树。然后通过`printInorder`函数展示了按照从左到右、再到根、再到右的顺序打印出来的节点值。
阅读全文