Java 栈中push(Element)方法的实现
我今天在学堆叠。 我试图实现push(Element)方法,但由于某些原因,它不起作用 我在堆栈中添加了10个项目,然后使用toString方法打印。唯一打印的项目是我最重要的元素。 非常感谢你的帮助Java 栈中push(Element)方法的实现,java,stack,Java,Stack,我今天在学堆叠。 我试图实现push(Element)方法,但由于某些原因,它不起作用 我在堆栈中添加了10个项目,然后使用toString方法打印。唯一打印的项目是我最重要的元素。 非常感谢你的帮助 private Node head = null; private Node tail = null; private static int size; public void push(Customer custPair) { if (head == null) {
private Node head = null;
private Node tail = null;
private static int size;
public void push(Customer custPair)
{
if (head == null)
{
head = new Node(custPair, null);
tail = head;
size++;
} else
{
tail.next = head;
head = new Node(custPair, null);
size++;
}
}
@Override
public String toString()
{
StringBuilder sBuilder = new StringBuilder();
// Walk down the list and append all values
Node curNode = head;
while (curNode != null)
{
sBuilder.append(curNode.value.toString()).append("\n");
curNode = curNode.next;
}
return sBuilder.toString();
}
当堆栈已经有头时,您的逻辑是错误的。我认为新头必须指向旧头(via.next) 我有点困惑,你是在实现后进先出还是先进先出堆栈 后进先出
else {
Node node = new Node(custPair, null);
node.next = head;
head = node;
size++;
}
对于后进先出(LIFO)堆栈,您真的不需要尾部。后进先出(LIFO)的工作方式很有魅力。谢谢。我不知道尾部部分,谢谢你的更新。:)