#include <stdio.h>
#include <stdlib.h>
/*
结点的度:结点拥有的子女数
树的度:树中所有结点度的最大值
叶子结点(终端结点):度为0的结点
树枝:树中连续两个结点的线段
路径:路径的长度等于所经过的树枝条数
树的深度(高度):树中结点的最大层数
一颗非空二叉树的第i层上至多有(2的(i-1)次方)个结点(i>=1)
满二叉树:结点个数为2的h-1方
完全二叉树:最后一层均向左靠齐
满一完,完非满*/
typedef char datatype;
typedef struct node
{
datatype data;
struct node *lchild,*rchild;
}node,*tree;
tree createtree()
{
char ch;
tree newtree;
//scanf("%c",&ch);
if((ch=getchar())=='#')
return NULL;
else
{
newtree=(node*)malloc(sizeof(node));
newtree->data=ch;
newtree->lchild=createtree();
newtree->
#include <stdlib.h>
/*
结点的度:结点拥有的子女数
树的度:树中所有结点度的最大值
叶子结点(终端结点):度为0的结点
树枝:树中连续两个结点的线段
路径:路径的长度等于所经过的树枝条数
树的深度(高度):树中结点的最大层数
一颗非空二叉树的第i层上至多有(2的(i-1)次方)个结点(i>=1)
满二叉树:结点个数为2的h-1方
完全二叉树:最后一层均向左靠齐
满一完,完非满*/
typedef char datatype;
typedef struct node
{
datatype data;
struct node *lchild,*rchild;
}node,*tree;
tree createtree()
{
char ch;
tree newtree;
//scanf("%c",&ch);
if((ch=getchar())=='#')
return NULL;
else
{
newtree=(node*)malloc(sizeof(node));
newtree->data=ch;
newtree->lchild=createtree();
newtree->