【问题标题】:convert short form of tree string(parentheses) into full form [closed]将短形式的树字符串(括号)转换为完整形式[关闭]
【发布时间】:2021-02-07 17:38:51
【问题描述】:

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

这是一个示例树表达式:

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

这棵树看起来像:

谁能提供我完整的代码或至少部分 C++ 代码?

其他例子:

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

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

【问题讨论】:

  • “有没有办法在 C++ 中做到这一点?” 可能是的。

标签: c++ data-structures tree binary-tree expression-trees


【解决方案1】:

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

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

你能给我一个示例代码吗(我的意思是有任何代码 sn-ps 给出)? 还是我必须写造树代码然后输出?

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

步骤01:root -->(, answer = "(", 向左走

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

步骤03:root -->( answer = "(((", 向左走

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

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

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

所以答案将是 = "((((xx)),然后从第 03 步开始

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

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

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

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

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

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

【讨论】:

  • 请完整代码
  • 无代码 sn-ps,我只想将短格式转换为完整格式,仅此而已
  • 看你的代码: Let answer string = ""; step 01: root -->(, answer = "(", 向左 step02: root --->(, answer = "((", 向左 step 03: root -->( answer = "(((")) , go left step04: root --> ( answer = "((((, go left step 05: root ---> x answer = "((((x, 没有左边, 向右走 step 04 root step 06: root--> x, answer = "((((xx, 没有左,右,所以加")" 所以答案就是 = "((((xx)),从第03步root的右边走step 07: root -->(, answer = "(((xx)(, 向左走 step 08: root--> x answer = "((((xx)(x, no left go right of step 07))跨度>
  • step 09: root--> x answer = "((((xx)(xx, 没有左或右,返回,加上")" 所以答案将是= "( (((xx)(xx)
  • @amirking59 我在回答中添加了一些步骤。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多