叉树的结点stri
gmid:存储了二叉树的中序序列的字符串stri
gpre:存储了二叉树的先序序列的字符串i
tlmi
trm:二叉树的中序序列在数组mid中的左右边界i
tlpi
trp:二叉树的先序序列在数组pre中的左右边界voidTreeFromMidPreLPBINARY_TREE_NODElpNodestri
gmidstri
gprei
tlmi
trmi
tlpi
trp构造二叉树结点
flpNode
ewBINARY_TREE_NODElpNodedataprelplpNodepLeftChildNULLlpNodepRightChildNULLi
tposlmwhilemidposprelpposi
tiLeftChildLe
poslmifposlm有左孩子,递归构造左子树TreeFromMidPrelpNodepLeftChildmidprelmpos1lp1lpiLeftChildLe
ifposrm有右孩子,递归构造右子树TreeFromMidPrelpNodepRightChildmidprepos1rmlpiLeftChildLe
1rp先序遍历voidPreOrderLPBINARY_TREE_NODEpifpNULLcoutpdata输出该结点PreOrderppLeftChild遍历左子树PreOrderppRightChild遍历右子树中序遍历voidMidOrderLPBINARY_TREE_NODEpifpNULLMidOrderppLeftChild遍历左子树coutpdata输出该结点MidOrderppRightChild遍历右子树
f后序遍历voidPostOrderLPBINARY_TREE_NODEpifpNULLPostOrderppLeftChild遍历左子树PostOrderppRightChild遍历右子树coutpdata输出该结点释放二叉树voidReleaseLPBINARY_TREE_NODElpNodeiflpNodeNULLReleaselpNodepLeftChildReleaselpNodepRightChilddeletelpNodelpNodeNULL
i
tmai
i
targccharargvstri
gpre存储先序序列stri
gmid存储中序序列stri
gpost存储后序序列LPBINARY_TREE_NODElpRoot二叉树根节点指针
cout