层次遍历二叉树 并输出遍历结果
来源:互联网 发布:网络主播小可爱 编辑:程序博客网 时间:2024/04/29 21:11
#include <stdio.h>
#include <stdlib.h>
#define max 100
typedef char ElemType;
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BinTree;
//建立二叉树
void CreateBinTree(BinTree &T){
char ch;
ch=getchar();
if(ch==' ') T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) printf("%c" "结点建立失败!") ;
T->data=ch;
CreateBinTree(T->lchild);
CreateBinTree(T->rchild);
}
}
//遍历二叉树
void LevleOrder(BinTree T){
BinTree Queue[max],p;
int front,rear;
front=rear=0;
if (T)
{
Queue[rear++]=T;
while (front!=rear){
p=Queue[front++];
printf("%c",p->data);
if (p->lchild!=NULL) Queue[rear++]=p->lchild;
if (p->rchild!=NULL) Queue[rear++]=p->rchild; }
}
}
//按要求输出二叉树
void Print_BinTree(BinTree T,int i ) //本题的关键所在, i表示结点所在层次,初次调用时i=0
{
if(T->rchild) Print_BinTree(T->rchild,i+1); //本题的难点,函数递归来建立层次。
for(int j=1;j<=i;j++) printf(" "); //打印i个空格以表示出层次
printf("%c\n",T->data); //打印T元素,换行
if(T->lchild) Print_BinTree(T->lchild,i+1);
}
int main()
{
BinTree T;int i=0;
printf("\n创建二叉树\n");
CreateBinTree (T);
printf("\n层次遍历二叉树 并输出遍历结果\n");
LevleOrder(T);
printf("\n按树形打印输出二叉树\n");
Print_BinTree(T, i);
return 0;
}
- 层次遍历二叉树 并输出遍历结果
- 建立二叉树,并层次遍历输出
- 树的遍历 有后序遍历和中序遍历建立二叉树,并输出层次遍历
- 构建一棵二叉树并按照层次遍历输出
- 层次遍历二叉树,并输出节点所在的行数
- 由二叉树中序遍历和先序遍历,构造二叉树,经过镜面翻转后输出层次遍历结果
- 二叉树先序遍历中序遍历结果得出该树,并以后序遍历形式输出
- 二叉树的层次遍历输出
- 二叉树层次遍历(单层输出)
- 按照层次遍历并打印二叉树
- 根据前序与后序遍历构建二叉树,并以后序遍历结果输出
- 层次遍历二叉树
- 层次遍历二叉树
- 二叉树层次遍历
- 二叉树 层次遍历
- 二叉树层次遍历
- 层次遍历二叉树
- 二叉树层次遍历
- 网页中添加音频视频
- 关于LGame中的call to OpenGL ES API with no current context
- 左右子树交换
- 从产品到设计
- 使用CSplitterWnd实现拆分窗口(多视图显示)
- 层次遍历二叉树 并输出遍历结果
- Hibernate学习(二)
- http://projecteuler.net/problem=32 [Answer:45228]
- HTML <a> 标签的 target 属性
- 使用 System.Xml.XmlDocument 类可在 Visual C#.net 中执行 XPath 查询
- html 中的标记大全
- MediaPlayer框架概述(一)
- 韦东山的书很强大。。。。。看了感触很多。
- 哈夫曼编码源程序