不是表达式转换,而是从预订转换为Inorder(不是表达式)

时间:2012-11-15 20:10:02

标签: c++ binary-search-tree

我不是要求进行表达式转换

conversion from infix to prefix

我只是要求对于BST,如果输入是以前缀表示法的形式给出的,即BST的前序遍历,那么我如何将值序列转换为中缀表示法,即BST的顺序遍历

                 8
               /  \
              1    12
              \     /
               5   9
             /   \
            4     7
                 /
                6
例如,前序遍历将给出8 1 5 4 7 6 12 9

我如何转换这些值序列(输入) 到顺序遍历表达式1 4 5 6 7 8 9 12。

AS在某些情况下,inorder表达更容易处理...

2 个答案:

答案 0 :(得分:0)

BST:
前缀:左子树,节点,右子树 中缀:节点,左子树,右子树 Postfix :右子树,左子树,节点。

转换取决于您遍历树的方式。

答案 1 :(得分:0)

V =顶点

L =左子树

R =右子树

预购= VLR

Inorder = LVR

Postorder = LRV

(只需按顺序切换即可修复,也一样)

将它们放回到为中缀值设置前缀值的一种方法是再次使用前缀值创建二进制搜索树并执行Inorder遍历。

OR!

只是对家伙进行排序......(如果你将它们压成一条线(从上到下壁球),BST总是排序)