不是表达式转换,而是从预序到Inorder(不是表达式)的转换

Not expression conversion but conversion from preorder to Inorder (not expression)

本文关键字:转换 表达式 Inorder      更新时间:2023-10-16

我不要求表达式转换

从中缀到前缀的转换

我只是问对于 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 顺序表达式更容易处理...

使用 BST:
前缀:左子树、节点、右子树。
中缀:节点、左子树、右子树。
后缀:右子树、左子树、节点。

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

Let

V = 顶点

L = 左子树

R = 右子树

预购 = VLR

无序 = LVR

后序 = LRV

(只需切换顺序即可修复,它是一样的)

将它们放回以将前缀值转换为中缀值的一种方法是再次使用前缀值创建一个二叉搜索树并执行 Inorder 遍历。

或!

只是排序伙计...(如果您将它们压扁成一条线(从上到下挤压),BST 总是排序)