前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树形结构--二叉树的遍历算法应用(十九)

树形结构--二叉树的遍历算法应用(十九)

作者头像
花狗Fdog
发布2020-10-28 10:17:18
4340
发布2020-10-28 10:17:18
举报
文章被收录于专栏:花狗在Qt

一.遍历算法应用

1.输出二叉树中的结点

代码语言:javascript
复制
void PreOrder(BiTree root)
{
    if(root != NULL)
    {
        printf("%d",root->data); // 假设数据为int类型
        PreOrder(root->RChild); // 遍历左子树
        PreOrder(root->RChild); // 遍历右子树
        //上例为先序遍历,中序遍历和后序遍历,只是printf()位置不同。
    }
}

2.输出二叉树中的叶子结点

代码语言:javascript
复制
void PreOrder(BiTree root)
{
    if(root != NULL)
    {
        if(root->LChild == NULL && root->RChild == NULL)
        {
        printf("%d",root->data);
        }
        PreOrder(root->LChild); 
        PreOrder(root->RChild); 
    }
}

3.统计叶子结点数目

代码语言:javascript
复制
int LeafCount = 0; 

void leaf(BiTree root)
{
    if(root != NULL)
    {
        leaf(root->LChild); 
        leaf(root->RChild);
        if(root->LChild == NULL && root->RChild == NULL)
        {
        LeafCount++;
        }
    }
}

4.建立二叉链表方式存储的二叉树

代码语言:javascript
复制
void CreateBiTree(BiTree * bt)
{
    char ch; 
    ch = getchar(); 
    if(ch == '.')
    {
        *bt = NULL;
    }
    else
    {
        *bt = (BiTree)malloc(sizeof(BiTree));
        (*bt)->data = ch; 
        CreateBiTree(&((*bt)->LChild));
        CreateBiTree(&((*bt)->RChild));
    }
}

5.求二叉树的高度

代码语言:javascript
复制
// 先序遍历求二叉树的高度
int PostTreeDepth(BiTree bt, int h)
{ 
    if(bt != NULL)
    {
        if(h>depth)
        {
            depth = h;
        }
         PostTreeDepth(bt->LChild,h+1);
         PostTreeDepth(bt->RChild,h+1);
    }
}


// 后序遍历求二叉树的高度
int PostTreeDepth(BiTree bt)
{
    int hl,hr,max; 
    if( bt != NULL)
    {
        hl = PostTreeDepth(bt->LChild);
        hr = PostTreeDepth(bt->RChild);
        max = hl>hr?hl:hr; 
        return max+1;
    }
    else return 0;
}

6.按树状打印二叉树

代码语言:javascript
复制
void PrintfTree(BiTree bt,int nLayer)
{
if(bt == NULL)return ;
PrintfTree(bt->RChild,nLayer+1);
for(int i = 0;i<nLayer;i++)
{
    printf(" ");
}
printf("%c\n",bt->data);
PrintfTree(bt->LChild,nLayer+1);
}

若有错误,欢迎指正批评,欢迎评论。 每文一句:欲戴王冠,必承其重。哪有什么好命天赐,不都是一路披荆斩棘才换来的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.遍历算法应用
    • 1.输出二叉树中的结点
      • 2.输出二叉树中的叶子结点
        • 3.统计叶子结点数目
          • 4.建立二叉链表方式存储的二叉树
            • 5.求二叉树的高度
              • 6.按树状打印二叉树
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档