Java 双链表中缀到后缀
对于类,我们的任务是使用“抽象中的双链接列表堆栈实现”将中缀表达式转换为后缀。我能够编写一个使用堆栈进行转换的程序,但是双链表的用途是什么?我们将向列表中添加哪些信息节点 这是作为示例提供给我们的stack类。为什么变量的下一个类型是堆栈?不应该是节点吗Java 双链表中缀到后缀,java,doubly-linked-list,Java,Doubly Linked List,对于类,我们的任务是使用“抽象中的双链接列表堆栈实现”将中缀表达式转换为后缀。我能够编写一个使用堆栈进行转换的程序,但是双链表的用途是什么?我们将向列表中添加哪些信息节点 这是作为示例提供给我们的stack类。为什么变量的下一个类型是堆栈?不应该是节点吗 public class Stack { private int data; private Stack next; private static Stack top; //Initialize Stack public
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+2转换为2+ 在这种情况下,节点将保留运算符(+)或操作数(2),并保留指向列表中上一个和下一个节点的链接。 例如,如果我使用括号表示节点,使用箭头表示链接,则2+2看起来像:
NULL实际上是前缀,但我明白你的意思。考虑到您所说的所有其他内容,如果列表包含所有值,那么堆栈的用途是什么?等式中的每个元素是否作为节点添加到列表中,然后使用堆栈处理列表以转换为后缀?是的,堆栈似乎包含数字,节点将是运算符。谢谢你指出inflix vs前缀,我将编辑我的帖子来纠正这个例子。我很困惑,操作的顺序是什么?扫描字符串中的每个字符,然后。。。。