【问题标题】:Insert math equation into binary tree in C将数学方程插入C中的二叉树
【发布时间】:2018-11-04 02:37:10
【问题描述】:

我想知道如何将诸如5 * 4 + 2 / 3 之类的等式插入二叉树中。我自己尝试过这样做,但我只能让树长到一侧。

【问题讨论】:

  • 你想达到什么目的?
  • 我只想创建一个表达式树
  • 如果你不向我们展示你的代码,你很难看出你做错了什么。
  • 我不是在找代码,只是关于如何创建树的逻辑解释
  • 一个好的起点是Shunting-yard algorithm。也可以看看stackoverflow.com/questions/33297807/…,里面有很多不错的信息链接。

标签: c data-structures tree binary-tree


【解决方案1】:

我不是该领域的专家,但我过去写过基本的表达式解析器。

  1. 你需要tokenize你的表情。将其从字符串转换为可理解的块的list

  2. 您可能想要创建两个结构,一个用于运算符,一个用于操作数。提示,运算符具有与其关联的优先级。

  3. 您可以应用算法将运算符/操作数转换为 abstract syntax tree (AST),它基本上只是一组规则,通常与队列和堆栈一起使用。

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 2015-06-16
    • 2016-01-17
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多