永发信息网

已知二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它的前序遍历序列是?

答案:1  悬赏:30  手机版
解决时间 2021-12-30 13:58
已知二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它的前序遍历序列是?
最佳答案
二叉树的后序遍历序列是DACBE, 中序遍历序列是DEBAC

根据后序DACBE最后的字符是E, 可以确定E是根结点.
那么,中序DEBAC就以E为中心, D为根结点的左子树, BAC是根结点的右子树.

      E
     / \
    D   BAC

后序DACBE里的B在E之前, 中序DEBAC里的B在E之后, 可以确定B是E的右孩子.

      E
     / \
    D   B
         \
          AC

后序DACBE里的A跟着D之后, 预计A在二叉树的最后, 那么C层次上应该在B和A之间.
二叉树的示意图如下:

      E
     / \
    D   B
         \
          C
         /
        A

所以, 前序遍历序列是 EDBCA


C语言测试程序
测试结果:

创建二叉树,输入前序扩展序列: ED##B#CA###
前序遍历序列: E D B C A
中序遍历序列: D E B A C
后序遍历序列: D A C B E

#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
    char data;
    struct Node *lchild;
    struct Node *rchild;
}Bitree;
//用"前序遍历"算法创建二叉树
void CreateBiTree(Bitree **bt)
{
    char s;
    scanf("%c",&s); //输入数据
    if(s=='#')      //'#'是空节点
        *bt=NULL;
    else
    {
        *bt=(Bitree *)malloc(sizeof(Bitree));
        (*bt)->data=s;
        CreateBiTree(&((*bt)->lchild));
        CreateBiTree(&((*bt)->rchild));
    }
}
//前序遍历
void preOrder(Bitree *ptr)
{
    if(ptr!=NULL)
    {
        printf("%c ",ptr->data);
        preOrder(ptr->lchild);
        preOrder(ptr->rchild);
    }
}
//中序遍历
void inOrder(Bitree *ptr)
{
    if(ptr!=NULL)
    {
        inOrder(ptr->lchild);
        printf("%c ",ptr->data);
        inOrder(ptr->rchild);
    }
}
//后序遍历
void postOrder(Bitree *ptr)
{
    if(ptr!=NULL)
    {
        postOrder(ptr->lchild);
        postOrder(ptr->rchild);
        printf("%c ",ptr->data);
    }
}

int main()
{
    Bitree *root;
    printf("创建二叉树,输入前序扩展序列: ");
    CreateBiTree(&root);

    printf("前序遍历序列: ");
    preOrder(root);
    printf("\n中序遍历序列: ");
    inOrder(root);
    printf("\n后序遍历序列: ");
    postOrder(root);

    printf("\n");
    return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中央电视台天气预报是按什么标准选择预报城市
峪峧新村委会在什么地方啊,我要处理点事
上海应届毕业生招聘季大概在什么时候?
–This summer is very hot.Yes, but it’s n
做一个窗帘大概多少钱
专升本是怎么一回事?
浦江九隆大众汽车地址在什么地方,我要处理点
建设银行信用卡怎么提升额度?两年没涨过了
天行者是什么意思
奔驰r300机油量如何查看
语文必修四文言文整理
她问我是否要买这本书这一问让我的心整个地沉
陆风X5手动档2.0T的发动机怎么样?实际油耗多
工行网上银行怎么关闭
员工受伤和公司无关协议怎么写
推荐资讯
史记·司马相如列传有这样一个版本吗?
楚有养狙(j&)以为生者,楚人谓之狙公。旦
下列说法中正确的是A.如果某事件发生的机会为
合力50装载机怎么样
从天津站到北京最早的两班双层城际火车是几点
请问,成语,( )章( )姿 ( )飞(
单身是狗 ,还是贵族? 为什么?
陌陌怎么解除绑定怎么更换手机号绑定
单选题我国华山的成因是A.向斜山B.背斜山C.断
吉林市家庭旅馆,最好可以做饭那种
蓝色和黄色混合起来会是什么颜色
奢想是什么意思?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?