按二叉树的形状打印二叉树

时间:2011-12-31 14:12:05
【文件属性】:
文件名称:按二叉树的形状打印二叉树
文件大小: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;inum,bt->data);/*按逆中序输出结点,用程次决定左右位置*/ PrintTree(bt->LChild, nLayer+4); } void main() { BiTree bt; int i=0,nLayer=0; printf("\n你好:"); printf("\n请输入一个字符串,以空格作为空字符:\n"); CreateBiTree(&bt); posttree(bt); printf("按树状打印的二叉树的结点和编号为:\n"); printf("\n\n"); PrintTree(bt,nLayer); printf("\n\n^_^ ^_^ ^_^ 谢谢使用,再见!^_^ ^_^ ^_^\n\n\n"); }

网友评论

  • 代码很好,但是在java中不行