双向链接列表中缀到PostFix

时间:2015-05-06 23:04:21

标签: java doubly-linked-list

对于类,我们的任务是使用“抽象中的双向链表列表实现”将中缀表达式转换为postfix。我能够编写一个使用Stack的程序来进行转换,但双链表的目的是什么?我们在列表中添加了哪些信息节点?

这是作为示例提供给我们的堆栈类。为什么变量下一个类型Stack?不应该是Node吗?

public class Stack {
  private int data;
  private Stack next;
  private static Stack top;

  //Initialize Stack
  public Stack () {
      top = null;
      next = null;
  }

  public Stack (int d, Stack node) {
      data = d;
      next = node;
  }

  public void push(int item) {
      top = new Stack(item, top);
  }

  public int peek () {
     if(top == null) {
         throw new EmptyStackException();
     } 
     return (top.data);          
  }

  public int pop () {
      int item;

      if(top == null) {
          throw new EmptyStackException();
      } else
          item = top.data;
      top = top.next;
      return (item);
  }

  public boolean empty () {
      return top == null;
  }
}

如果我创建一个双向链表和节点类,那么节点对象中有哪些数据?

2 个答案:

答案 0 :(得分:0)

Node类的数据成员将是:指向上一个和下一个的指针以及数据。

答案 1 :(得分:0)

您必须将中缀表示法转换为后缀,这意味着将2 + 2转换为2 + 2 在这种情况下,Node将保存运算符(+)或操作数(2),它将保存指向列表中上一个和下一个节点的链接。 例如,如果我使用括号表示节点并使用箭头表示链接,则2 + 2看起来像: NULL< - (2)< - > (+)< - > (2) - > NULL