二叉树c语言实现完整代码
时间: 2023-08-13 10:04:57 浏览: 54
以下是一个基本的二叉树的 C 语言实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
//定义二叉树节点结构体
typedef struct node{
int data; //节点数据
struct node *left; //左子树指针
struct node *right; //右子树指针
}Node;
//创建新节点
Node* createNode(int data){
Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
//插入节点
void insertNode(Node **root, int data){
if(*root == NULL){
*root = createNode(data);
}else{
if((*root)->data > data){
insertNode(&((*root)->left), data);
}else{
insertNode(&((*root)->right), data);
}
}
}
//前序遍历
void preOrder(Node *root){
if(root != NULL){
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
}
//中序遍历
void inOrder(Node *root){
if(root != NULL){
inOrder(root->left);
printf("%d ", root->data);
inOrder(root->right);
}
}
//后序遍历
void postOrder(Node *root){
if(root != NULL){
postOrder(root->left);
postOrder(root->right);
printf("%d ", root->data);
}
}
//测试函数
int main(){
Node *root = NULL;
insertNode(&root, 10);
insertNode(&root, 5);
insertNode(&root, 3);
insertNode(&root, 8);
insertNode(&root, 15);
insertNode(&root, 12);
insertNode(&root, 19);
printf("前序遍历结果:");
preOrder(root);
printf("\n中序遍历结果:");
inOrder(root);
printf("\n后序遍历结果:");
postOrder(root);
return 0;
}
```
该代码实现了二叉树的创建、插入节点以及前序、中序、后序遍历操作。可以根据需要进行修改和扩展。