UMAaa 2023-11-12 16:16 采纳率: 0%
浏览 90
已结题

7-1 根据后序序列和中序序列确定二叉树

7-1 根据后序序列和中序序列确定二叉树
二叉树采用二叉链表存储,要求根据给定的后序遍历序列和中序遍历序列建立二叉树,并输出二叉树的深度及其先序遍历序列。

输入格式:
测试数据有多组,处理到文件尾。每组测试数据的第一行输入结点数n(1≤n≤10),第二、三行各输入n个整数,分别表示二叉树的后序遍历序列和中序遍历序列。

输出格式:
对于每组测试,在一行上分别输出该二叉树的深度及其先序遍历序列。每两个数据之间留一个空格。

输入样例:
9
7 4 2 8 9 5 6 3 1
4 7 2 1 8 5 9 3 6
输出样例:
4 1 2 4 7 3 5 8 9 6
我的代码:

#include<bits/stdc++.h>
using namespace std;
typedef struct bitnode{
    int data;
    bitnode* lc;
    bitnode* rc;
}bitnode,*bitree;
void pre(bitnode *tree)
{
    if (tree == NULL)
    {
        return;
    }
    cout<<" " << tree->data;
    pre(tree->lc);
    pre(tree->rc);
}
void create(int post[], int mid[], int n,bitree &tree) {
    if (n <= 0)
        return;
    tree = (bitree)malloc(sizeof(bitnode));
    int r = post[n - 1];
    tree->data = r;
    int k;
    for (k = 0;k < n;k++)
        if (mid[k] == r)
            break;
    create(post, mid, k,tree->lc);
    create(post + k, mid + k + 1, n - k - 1,tree->rc);
}
int Depth(bitree Tree)
{
    int m, n;

    if (Tree == NULL) return 0;
    m = Depth(Tree->lc);
    n = Depth(Tree->rc);
    if (m > n) {
        return m+1 ;
    }
    else {
        return n+1 ;
    }
}
int main() {
    int n;
    int post[20], mid[20];
    bitree tree;
    cin >> n;
    for (int i = 0;i < n;i++)
        cin >> post[i];
    for (int i = 0;i < n;i++)
        cin >> mid[i];
    create(post, mid, n, tree);
    cout << Depth(tree);
    pre(tree);
    return 0;
}
/*
9
7 4 2 8 9 5 6 3 1
4 7 2 1 8 5 9 3 6
*/

测试用例运行结果是正确的,但提交答案显示答案错误,请问问题在哪里?

  • 写回答

2条回答 默认 最新

  • 真相重于对错 2023-11-12 18:31
    关注

    后序最后一个数是根节点,中序则通过根节点把整个树分为两个
    那么1就是根节点,472是左树中序,85936是右树中序
    再根据后序得到742是左树后序,89563是右树的后序,同上递归求解即可

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月14日
  • 创建了问题 11月12日

悬赏问题

  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题