这是我的链接堆栈程序的一些代码:
import java.util.NoSuchElementException;
class linkstack<T> {
private class node {
T value;
node link;
}
private node top = null;
...
现在,我的推送函数头是这样的:
public void push (T value) {
node temp = new node();
temp.value =
}
我计划分配 temp 的值以等于在推送方法的参数中传递的值,但我不确定我是否可以这样做,因为我不确定"T"到底是什么?
我也写了一个弹出函数,这有什么意义吗?
public T pop() {
if (empty()) {
throw new NoSuchElementException ("linked_stack.pop");
} else{
node temp = top;
temp = top.link;
return temp.value;
}
}
你需要使用node
的泛型类型,而不是原始类型,即:
private class Node<T> {
...
}
public void push (T value) {
Node<T> temp = new Node();
temp.value = value;
}
有关泛型的简介,请查看本教程。 有关更高级的参考,请查看Anjelika Langer的Java Generics FAQ。