首页 > 其他 > 详细

DS查找—二叉树平衡因子

时间:2020-01-12 18:00:48      阅读:125      评论:0      收藏:0      [点我收藏+]

题目描述

二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。

计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。

 

--程序要求--

若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio

程序中若include多过一个头文件,不看代码,作0分处理

不允许使用第三方对象或函数实现本题的要求

 

输入

测试次数t

每组测试数据一行,数组元素个数n,后跟n个字符,二叉树的数组存储。

输出

对每组测试数据,按后序遍历的顺序输出树中结点的平衡因子(测试数据没有空树)

样例输入

2 6 ABC00D 24 ABCD0EF0000H00000000000I

样例输出

B 0 D 0 C 1 A -1 D 0 B 1 I 0 H 1 E 2 F 0 C 2 A -2

提示

#include<iostream>
using namespace std;
int countfactor(int n,int i,char* p)
{
    if(i>=n||p[i]==0)
        return 0;
    int l=countfactor(n,i*2+1,p);
    int r=countfactor(n,i*2+2,p);
    cout<<p[i]<< <<l-r<<endl;
    return max(l,r)+1;
}
 
void countfactor(int n,char *p)
{
    countfactor(n,0,p);
}
 
 
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        char *p=new char[n];
        for(int i=0;i<n;i++)
            cin>>p[i];
        countfactor(n,p);
        delete []p;
    }
    return 0;
}

DS查找—二叉树平衡因子

原文:https://www.cnblogs.com/SZU-DS-wys/p/12183032.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!