将短形式的树字符串括号转换为完整形式

问题描述

我想将树字符串表达式的简短形式(带括号)转换为完整形式。

这是一个示例树表达式:

intput: ((((XX(XXX(XX 
output: ((((XX)(XX))X)(XX))

这棵树看起来像:

this

有人可以提供我完整的代码或至少部分 C++ 代码吗?

其他例子:

input: (S((SS(S(S(((S(SSSS 

output: (S((SS)(S(S(((S(SS))S)S)))))

解决方法

这是一个中序树遍历过程。 根目录-->左-->右

如果你愿意,我可以写出完整的解决方案,这需要一些时间。

你能给我一个示例代码吗(我的意思是有没有给出任何代码片段)? 或者我必须写树构建代码然后输出?

看看你的代码: 让答案字符串 = "";

step 01: root -->(,answer = "(",go left

step02: root --->(,answer = "((",往左走

step 03: root -->( answer = "(((",go left

step04: root --> ( answer = "((((,向左走

step 05: root ---> x answer = "(((((x,没有左边,从step 04往右边走

step 06: root--> x,answer = "(((((xx,没有左,右,所以加")"

所以答案将是 = "(((((xx),and go right of step 03

步骤 07:root -->(,answer = "(((xx)(,向左走

第08步:root--> x answer = "(((((xx)(x,no left go right of step 07)

step 09: root--> x answer = "(((((xx)(xx,没有左或右,返回,添加)")"

所以答案是= "((((xx)(xx)

同样的方法你可以解决树的其余部分。

注意如果没有子节点,并且节点在父节点的右边加")"(右括号)