【发布时间】:2021-06-01 11:18:00
【问题描述】:
我在做涉及 Java 中的堆栈和节点的家庭作业时遇到了麻烦。我了解堆栈的概念,但对节点感到困惑。任务是编写一个使用堆栈(不是 java.util.Stack)的程序,该程序检查数学表达式中正确的 ()、[] 和 {} 对。我们已经有了 Node 程序。 所以基本上我的问题是我需要一些帮助来完成我的 PStack 类的推送方法。
PStack.java
class PStack {
private Node top;
public PStack() {
top=null;
}
public boolean isEmpty() {
return top==null;
}
public int pop() {
Node top1 = top;
top = top.getNext();
return top1.getData();
}
public void push(Node n) {
}
public int peek() {
return top.getData();
}
}
Node.java
public class Node {
private int data;
private Node nextnode;
public Node(int intial) {
data = intial;
nextnode = null;
}
public int getData() {
return data;
}
public Node getNext() {
return nextnode;
}
public void setData(int newdata) {
data = newdata;
}
public void setNode(Node next1node) {
nextnode = next1node;
}
}
我试过了:
public void push(Node n) {
Node next = n;
top.getNext().setNode(n);
}
结果:
Exception in thread "main" java.lang.NullPointerException
at javaclass.stack.pStack.push(pStack.java:24)
at javaclass.stack.StackDriver.main(StackDriver.java:17)
【问题讨论】:
-
不清楚是什么问题。
-
@DaveNewton 我用这个问题更新了我的帖子。
-
这没有帮助(我,反正 :) 其中一个类是否存在特定问题?是否不知道如何使用它们来解决这个特定问题(这是一个用堆栈解决的常见问题,因为它变成了几行解决方案)?
-
旁白:请遵循 Java 编码约定。类名应以大写字母开头。
pStack应该是PStack。 -
如果您需要帮助实现
push(),您至少必须尝试一下。我怀疑有人会为你写它。如果您完全陷入困境,请向您的教练寻求帮助,他们需要知道您正在苦苦挣扎。