【问题标题】:Binary Tree Postfix Calculator二叉树后缀计算器
【发布时间】:2013-04-25 06:58:10
【问题描述】:

我正在制作一个后缀计算器,在评估后缀表达式期间,在将表达式从中缀转换为解析树期间,我必须使用堆栈对象和二叉树。

有人可以翻译吗?

我开发了一种后缀计算器方法,并且我开发了一种将表达式从中缀更改为后缀的方法,但我不明白我被要求做什么。我可以在中缀中输入一个表达式并计算它,并将其转换为后缀,但我无法确定我被要求在这里创建什么。

一个如何在伪代码中实现这一点的示例将非常有帮助,或者只是解释如何将数学表达式存储到二叉树中,以及如何将带有堆栈的二叉树中的表达式求值到解析树中.

我还要说我有点不确定解析树是什么。

任何解释将不胜感激。

这是一个班级的作业,所以如果信息不充分,可以在这里看到:http://www.cs.gsu.edu/jbhola/csc3410/Spring13/assign6_expre_tree.html

我的主要观点是我只是不太明白我应该做什么或应该如何做。我们没有被教过如何编程,而且我们缺乏教科书,所以我只是在盲目地试图围绕整个项目进行思考:/

【问题讨论】:

  • 我假设你被要求为你给出的表达式构建一个二叉树表示。严格来说,您不需要二叉树来评估表达式,但这是练习的目的,因此您不能放弃它。你可能没有教科书,但你应该有谷歌,反正可能会更好。
  • 我用谷歌搜索过,我发现的是一种在后缀中读取二叉树表达式的方法,但没有解释如何设置这样的东西或直接从树中计算它:c
  • 我会首先担心 a) 什么是二叉树和 b) 如何构建二叉树。如何在这样的树上执行计算可能过于琐碎,无法包含在帖子中。
  • 有些事情太琐碎了,你的大脑会拒绝它。其他一切似乎都很复杂,所以它一定很复杂。 ;) 我已经给你一个答案作为提示。
  • 我想我明白你的意思了。学习制作二叉树,然后简单地以后缀形式读取二叉树对象。所以我认为这意味着我需要学习如何将中缀表达式正确存储到二叉树中,然后使用后缀读取方法进行评估。由于我已经知道如何读取树的后缀,所以我只需要为树创建一个中缀表达式存储方法!这现在更清楚了!谢谢:D

标签: java binary-tree calculator infix-notation postfix-notation


【解决方案1】:

假设你有一个像 AddNode 这样的节点,它有两个值

class AddNode {
    final double a, b;

    double value() {
       return // how could you return the value of this node?
    }
}

使其更通用

 interface Node { double value(); }

 class AddNode implements Node {
      final Node a, b;

      double value() {
          return // something which gives the value of this node.
      }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多