📄 operate_tree.h
字号:
/*=====================================*/
/*定义结构体 */
/*=====================================*/
typedef struct Tree_one{
int data;
struct Tree_one *left, *right;
}Tree;
int count_leaf=0,count_pitch=0;
/*============================================*/
/*按先序输入元素 */
/*============================================*/
void Create_Tree(Tree **t)
{
int scan_x;
printf("输入元素=");
scanf("%d",&scan_x);
if(scan_x==0)
(*t)=NULL;
else
{
(*t)=(Tree *)malloc(sizeof(Tree));
if((*t)==NULL)
printf("申请内存空间失败");
else
{
(*t)->data=scan_x;
Create_Tree(&((*t)->left)); /* 递归输入左子树 */
Create_Tree(&((*t)->right)); /* 递归输入右子树 */
}
}
}
/*============================================*/
/*按先序输出元素 */
/*============================================*/
void PerOut_Tree(Tree *t)
{
Tree *Strat=t;
if(Strat!=NULL)
{
printf("%d",Strat->data);
PerOut_Tree(Strat->left); /* 递归输出左子树 */
PerOut_Tree(Strat->right); /* 递归输出右子树 */
}
else
printf("0");
}
/*============================================*/
/*按中序输出元素 */
/*============================================*/
void InOut_Tree(Tree *t)
{
Tree *Strat=t;
if(Strat!=NULL)
{
PerOut_Tree(Strat->left);
printf("%d",Strat->data);
PerOut_Tree(Strat->right);
}
else
printf("0");
}
/*============================================*/
/*按后序输出元素 */
/*============================================*/
void PostOut_Tree(Tree *t)
{
Tree *Strat=t;
if(Strat!=NULL)
{
PerOut_Tree(Strat->left);
PerOut_Tree(Strat->right);
printf("%d",Strat->data);
}
else
printf("0");
}
/*============================================*/
/*叶子节点个数 */
/*============================================*/
void Find_Leaf(Tree *t)
{
if(t!=NULL)
{
Find_Leaf(t->left);
/* 左右子树都为空,节点计数器加1 */
if(t->left==NULL&&t->right==NULL)
count_leaf++;
Find_Leaf(t->right);
}
}
void Find_Pitch(Tree *t)
{
/* 节点不为空,节点计数器加1 */
if(t!=NULL)
{
count_pitch++;
Find_Pitch(t->left);
Find_Pitch(t->right);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -