码迷,mamicode.com
首页 > 其他好文 > 详细

层次遍历二叉树

时间:2014-05-26 04:53:07      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:二叉树   层次遍历   递归   数据结构   

先序序列输入字符序列(其中逗号表示空节点),输出该二叉树的层次遍历序列。

bubuko.com,布布扣bubuko.com,布布扣

#include <iostream>
#define END ','//表示空节点
using namespace std;
typedef char Elem_Type;
typedef struct BiTree
{
    Elem_Type data;
    struct BiTree *Lchild;
    struct BiTree *Rchild;
}BiTree;
BiTree *CreateBiTree(void)
{
    Elem_Type value;cin>>value;
    if(value == END)
      return NULL;
    BiTree *root = new BiTree;
    root->data = value;
    root->Lchild = CreateBiTree();
    root->Rchild = CreateBiTree();
    return root;
}
int BiTreeDepth(BiTree *root)
{
    if( !root )
      return 0;
    return max( BiTreeDepth(root->Lchild),BiTreeDepth(root->Rchild) ) + 1;
}
void PrintBiTree(BiTree *root,int level)
{
    if( !root )//不写这个会有段错误发生
      return;
    if(level == 1 )
      cout<<root->data;
    else
    {
        PrintBiTree(root->Lchild,level - 1);
        PrintBiTree(root->Rchild,level - 1);
    }
}
void LeveOrderTraverse(BiTree *root)
{
    int depth = BiTreeDepth(root);
    for(int i=1; i <= depth; i++)
    {
        PrintBiTree(root,i);
        cout<<endl;
    }
}
int main(void)
{
    BiTree *root = CreateBiTree();
    LeveOrderTraverse(root);
    return 0;
}

层次遍历二叉树,布布扣,bubuko.com

层次遍历二叉树

标签:二叉树   层次遍历   递归   数据结构   

原文地址:http://blog.csdn.net/li_jun_09_05/article/details/26628685

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!