【发布时间】:2021-07-18 15:08:40
【问题描述】:
我得到了一些名为 NGen 的预写类,它是一个通用节点类和 Stack1Gen.java,它正在为链表实现。出于某种原因,在 Stack1Gen 类中,当它显示 start.getNext(); 时出现错误。说“无法访问 NGen。这是什么意思?
// NGen.java
// A *simplified* generic node class for use with Stack1Gen class
// and other data structures as desired; uses generics for the data
public class NGen <T> {
// constructors
public NGen () {}
public NGen (T o, NGen<T> link) {
data = o;
next = link;
}
// selectors
public T getData() {
return data;
}
public void setData(T o) {
data = o;
}
public NGen<T> getNext() {
return next;
}
public void setNext(NGen<T> link) {
next = link;
}
// instance variables
private T data;
private NGen<T> next;
} // NGen class
// Stack1Gen.java
// The StackGen Interface is implemented using linked list
// The linked list used is a simple generic node class called NGen. (See NGen.java)
public class Stack1Gen <T> implements StackGen<T> {
// constructor
public Stack1Gen () {}
// selectors
public void push(T o) {
start = new NGen<T>(o, start);
}
public T pop() {
if (start == null)
throw new RuntimeException("Tried to pop an empty stack");
else {
T data = start.getData();
start = start.getNext();
return data;
}
}
public T top() {
if (start == null)
return null;
else return start.getData();
}
public boolean isEmpty() {
if (start == null)
return true;
else return false;
}
// instance variables
private NGen<T> start = null;
} // Stack1Gen class
【问题讨论】:
-
如果我添加了
StackGen接口的假版本(你的帖子中没有包含),你的代码编译得很好。