DS查找—二叉樹平衡因子


題目描述

二叉樹用數組存儲,將二叉樹的結點數據依次自上而下,自左至右存儲到數組中,一般二叉樹與完全二叉樹對比,比完全二叉樹缺少的結點在數組中用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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM