打印二叉树结构)按凹入表形式横向打印任意二叉树的结构,即二叉树的根在屏幕的最左边,二叉%C

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:35:27
打印二叉树结构)按凹入表形式横向打印任意二叉树的结构,即二叉树的根在屏幕的最左边,二叉%C
悬赏分:10 - 离问题结束还有 14 天 3 小时
(打印二叉树结构)按凹入表形式横向打印任意二叉树的结构,即二叉树的根在屏幕的最左边,二叉树的左子树在屏幕的下边,二叉树的右子树在屏幕的上边。
提示:(1)可以利用RDL遍历方法实现
(2)利用节点的深度控制横向位置
(3)在屏幕上打印出树形结构

/* 打印二叉树 */
#include "stdio.h"
#include "stdlib.h"
/****二叉链树的类型定义****/
typedef char TElemType;
typedef struct BiTNode
{ TElemType data;
struct BiTNode *lchild,*rchild;
} BiTNode, *BiTree;

/****先序建立二叉树****/
void CreateBiTree(BiTree *T)
{ char ch;
scanf("%c",&ch);
if (ch==' ')
*T=NULL;
else
{ *T=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild); }
}
/****RDL遍历二叉树****/
void RDLTraverse(BiTree T)
{ if (T)
{RDLTraverse(T->rchild);
printf("%2c",T->data);
RDLTraverse(T->lchild); }
}

/****计算二叉树的深度****/
int BiTreeDepth(BiTree T)
{ int h1,h2,h;
if (T==NULL)
return 0;
else
{ h1=BiTreeDepth(T->lchild);
h2=BiTreeDepth(T-