设某二叉树的前序序列为ABC,中序序列为CBA,则后序序列为? 求过程

cba01
设某二叉树的前序序列为ABC,中序序列为CBA,则后序序列为? 求过程
导读:前序遍历过程是根左右中序遍历过程是左根右所以根据前序可以很快确定根,然后可以查看根在中序中位置,将中序分为左右两部分,左边和右边两颗树,在按照上述方式递推出确定左子树的根和右子树如本题根据前序,可以确定A为根,A在中序中的位置,可以确定CB

前序遍历过程是根左右

中序遍历过程是左根右

所以根据前序可以很快确定根,然后可以查看根在中序中位置,将中序分为左右两部分,左边和右边两颗树,在按照上述方式递推出确定左子树的根和右子树

如本题

根据前序,可以确定A为根,A在中序中的位置,可以确定CB为A的左子树上的结点,没有右子树。

确定A之后,再看中序第二值为B,查看B在中序中的位置,C在B左边,确定C为B的左子树。所以本题的具体二叉树如下:

         A

       /

    B

  /

C

所以后序是CBA

很简单嘛,分别求出百位、十位、各位就搞定了噻

利用C语言整型数据相除只会保留整数的原则, a/100就会得到百位数,比如 345 / 100 C语言整型会得到结果 3,那么345 - 3100就会得到 45, 45 / 10 = 4,得到十位, 345 - 3100 - 410就会得到个位

因为

abc=100a+10b+c

cba=100c+10b+a

相减得

100a+10b+c-(100c+10b+a)

=99a-99c=99(a-c)

是99的倍数,也是9的倍数。

∵abc(6)=36c+6b+c

cba(9)=a+9b+81c

∴35a=3b+80c

∵1<=a<=5

∴35<=35a<=175

∵0<=b<=5 1<=c<=5

∴c=1或2 1<=3b<=15

当c=1时 81<=35a<=95 不存在整数a

当c=2时 161<=35a<=175 ∴a=5 ∴b=5

∴十进制数是 365+65+2=212

这个应该最简单一点了

其他的都要试好几次

这里只要讨论c就可以了

把分给我吧(^__^)