文件名称:按二叉树的形状打印二叉树
文件大小:1KB
文件格式:CPP
更新时间:2011-12-31 14:12:05
按二叉树的形状打印二叉树 打印二叉树
typedef struct Node//定义一个二叉树结点的结构体
{
char data; //每个结点的数值
int num; //数没个结点的编号
struct Node * LChild;
struct Node * RChild;
}BiTNode,* BiTree;
int a=0;
void CreateBiTree(BiTree * bt)//创建一个二叉树
{
char ch;
ch=getchar(); //逐个的为结点赋值
if(ch==' ')
* bt=NULL;
else
{
* bt=(BiTree)malloc(sizeof(BiTNode));
(* bt)->data=ch;
CreateBiTree(&((* bt)->LChild));//遍历左子树
CreateBiTree(&((* bt)->RChild));//遍历右子树
}
}
void posttree(BiTNode *bt) //通过后序遍历,给元素进行编号
{
if(bt!=NULL)
{
bt->num=++a; //通过全局变量,给结点元素编号
posttree(bt->LChild); //遍历右子树
posttree(bt->RChild); //遍历左子树
}
}
/*按数的形状打印竖向二插树*/
void PrintTree(BiTNode *bt,int nLayer)
{
if(bt==NULL) return;
PrintTree(bt->RChild, nLayer+4);
for(int i=0;i