对于类,我们的任务是使用“抽象中的双向链表列表实现”将中缀表达式转换为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;
}
}
如果我创建一个双向链表和节点类,那么节点对象中有哪些数据?
答案 0 :(得分:0)
Node类的数据成员将是:指向上一个和下一个的指针以及数据。
答案 1 :(得分:0)
您必须将中缀表示法转换为后缀,这意味着将2 + 2转换为2 + 2 在这种情况下,Node将保存运算符(+)或操作数(2),它将保存指向列表中上一个和下一个节点的链接。 例如,如果我使用括号表示节点并使用箭头表示链接,则2 + 2看起来像: NULL< - (2)< - > (+)< - > (2) - > NULL