【问题标题】:Can I generate Postfix Notation without using Double Linked List and Stack data structure我可以在不使用双链表和堆栈数据结构的情况下生成后缀表示法吗
【发布时间】:2012-05-01 01:02:29
【问题描述】:

我的问题是关于“postfix”表示法。在我的项目中,讲师希望我计算后缀符号。编程风格是免费的,但编程语言是 Java。我会用 Java 编写代码,但我不擅长抽象数据类型,例如堆栈、队列。有没有办法不用栈、双链表和队列来计算后缀符号?

【问题讨论】:

  • 嗨,hakiko。 StackOverflow 是一个网站,人们可以在其中提出有关他们正在编写的代码的特定问题。你问的是一个没有代码的完全一般的问题。所以我想说这是题外话。
  • 我认为问题很简单,基本,有没有办法。我会在你的回答后研究:)
  • 就目前而言,您的问题定义不明确。 “计算后缀符号”是什么意思?
  • 我首先为我的英语道歉。我有这个“后缀符号”表达式“5 9 + 2 * 6 5 * +”所以,我必须解决它。
  • 那么,到目前为止,您尝试了什么?有任何代码吗?这样的后缀表达式肯定最容易由面向堆栈的例程处理。

标签: java stack queue abstract-data-type postfix-notation


【解决方案1】:

这是使用堆栈的方式:

@SuppressWarnings({"rawtypes", "unchecked"})
public static void main(String[] args) {
  final String in = "5 9 + 2 * 6 5 * +";
  final Deque<Object> s = new LinkedList();
  for (String t : in.split(" ")) {
    if (t.equals("+")) s.push((Integer)s.pop() + (Integer)s.pop());
    else if (t.equals("*")) s.push((Integer)s.pop() * (Integer)s.pop());
    else s.push(Integer.parseInt(t));
  }
  System.out.println(s.pop());
}

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2013-08-15
    • 2021-11-19
    相关资源
    最近更新 更多