二叉树的操作及实现
该代码包含二叉树的建立,先中后序遍历,层次遍历,求叶子个数,求节点个数,求二叉树的深度,翻转二叉树,凹入法显示二叉树,括号二叉树.
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
struct node* right;
char data;
struct node* left;
}node;
//创建二叉树
node* create_tree()
{
node* p;
char x;
scanf("%c",&x);
getchar();
if(x == '0')
{
p = NULL;
}
else
{
p = (node*)malloc(sizeof(node));
p->data = x;
printf("请输入 %c 的左子树\n", p->data);
p->left = create_tree();
printf("请输入 %c 的右子树\n", p->data);
p->right = create_tree();
}
return p;
}
//先序遍历二叉树
void pre_visit(node* root)
{
if(root == NULL)
{
return ;
}
else
{
printf("%c\t",root->data);
pre_visit(root->left);
pre_visit(root->right);
}
}
//中序遍历二叉树
void