已知一棵二叉树的前序和中序序列,求该二叉树的后序序列。 前序序列:A, B, C, D, E, F, G, H, I, J 中序序列:C, B, A, E, F, D, I, H, J, G 后序序列:相关知识点: 试题来源: 解析 答案:后序序列:CBFEIJHGDA 反馈 收藏 ...
*Bitree;voidPreTree(BitreeT)//后序输出树{if(T==NULL)return;PreTree(T->Lchild);PreTree(T->Rchild);printf("%c",T->data);}char pre[MAX];char mid[MAX];intMidFind(int left,int right,charMID){for(int i=left;i<=right;i+
再看A的右子树(GEHCF),在前序遍历(ABDCEGHF)中,C在最前面,说明C为该子树的根结点,再看中序遍历(DBAGEHCF),C的左边(GEH)肯定为C的左子树,C的右边(F)肯定为C的右子树,初步判断二叉树是这样的: 再看C的左子树(GEH),在前序遍历(ABDCEGHF)中,E在最前面,说明E为该子树的根结点,再看中序遍历(DBAGEHCF)...
c=前序第一个字符 pos=c在中序中的位置 len1=中序pos左半部分长度 len2=中序pos右半部分长度 新建节点r,令r的元素等于c r的左儿子=getRoot(前序位置1开始的len1长度部分,中序pos位置的左半部分) r的右儿子=getRoot(前序位置len1开始右半部分,中序pos位置的右半部分) return r 如图1示: 图1 输入...
1/*以递归方式 前序遍历二叉树*/2voidPreOrderTraverse(BiTree t,intlevel)3{4if(t ==NULL)5{6return;7}8printf("data = %c level = %d\n", t->data, level);9PreOrderTraverse(t->lchild, level +1);10PreOrderTraverse(t->rchild, level +1);11} ...
___/___\___(BDE_)_(G_H)___先序的第二个元素是B,所以B是A的左子树根节点 由中序B在最前,知道其他元素都在B的右子树上 所以,后序序列为(DE_)B(G_H)A,对比已有的后序序列_DC_GH_A 得后序序列为:EDCBGHFA,中序序列为:BDECAGFH 先序序列 ABC_EF__中序序列 BDECA...
可以将中序表示式转换为后序(Postfix)表示式,后序表示式又称之为逆向波兰表示式(Reverse polish notation),它是由波兰的数学家卢卡谢维奇提出,例如(a+b)*(c+d)这个式子,表示为后序表示式时是ab+cd+*。 解法 用手算的方式来计算后序式相当的简单,将运算子两旁的运算元依先后顺序全括号起来...
中序序列:c,b,d,e,a,g,i,h,j,f前序序列:a,b,c,d,e,f,g,h,i,j 相关知识点: 试题来源: 解析 答:该二叉树的后序序列为:c,e,d,b,i,j,h,g,f,a 根据中序检查某些只有一孩子的到底是左孩子还是右孩子因为左右孩子必然导致中序不一样后序:cedbijhgfa2012反馈 收藏 ...
再看A的右子树(GEHCF),在后序遍历(DBGHEFCA)中,C在最后面,说明C为该子树的根结点,再看中序遍历(DBAGEHCF),C的左边(GEH)肯定为C的左子树,C的右边(F)肯定为C的右子树,初步判断二叉树是这样的: 再看C的左子树(GEH),在后序遍历(DBGHEFCA)中,E在最后面,说明E为该子树的根结点,再看中序遍历(DBAGEHCF...
如前序 为 ABDECGF 中序 为 BDACGEF 先 根据前序第一个节点 把中序分为BD和CGEF两部分,A为根节点,A左边为左子树,右边为右子树。再把左右子树分别做上述步骤。以此类推 根据第二,第三...个节点构成二叉树 A B E D C F G B 再根据后序的性质得到DBGCBFEA 知道后序中...