栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

7-23 还原二叉树 (25 分)(递归)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7-23 还原二叉树 (25 分)(递归)

参考:借用大神的解法

给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。

输入格式:

输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。

输出格式:

输出为一个整数,即该二叉树的高度。

输入样例:

9
ABDFGHIEC
FDHGIBEAC

输出样例:

5

代码:
#include
#include
#include
#include
#include
using namespace std;
int shu(char a[] , char b[] , int n){
    int k;
    if(n == 0) return 0;
    for(int i = 0 ; i < n ; i++){
        if(b[i] == a[0]){
            k = i;
            break;
        }
    }
    int x = shu(a+1 , b , k) + 1;
    int y = shu(a+k+1 , b+k+1 , n-k-1) + 1;
    return x > y ? x : y;
}
int main(){
    char a[55] , b[55];
    int n;
    cin>>n;
    cin>>a>>b;
    int gao = shu(a , b , n);
    cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784564.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号