正在通过Push pop和peek了解类中的链接列表节点。该计划的前提是向玩家展示他们拥有的牌以及谁赢了。该程序具有不同的对象,分别用于获胜的套牌和每个玩家的手。
以下是另一个循环,以显示获胜者:
for(int i= 0; i<26; i++)
if(p1cards.peek() > p2cards.peek()) {
p1cardsWon.push(p1cards.peek());
System.out.println("Player 1 won: " + p1cardsWon);
p1cards.pop();
} else if (p2cards.peek() > p1cards.peek()) {
p2cardsWon.push(p2cards.peek());
System.out.println("Player 2 won: " + p2cardsWon);
p2cards.pop();
}
这是我的Push,Pop和Peek方法:
public void push(T item) {
if (head == null) {
// The stack is empty
Node newNode = new Node(item, null);
head = newNode;
} else {
// Stack is not empty, create a new node at the top of the stack
// The new item's next link goes to the "old" head
Node newNode = new Node(item, head);
// Now we can re-assign the link to the new head
head = newNode;
}
}
public T pop() {
T top = peek();
if (head!= null)
head = head.getNext();
return top;
}
public T peek() {
T top = null;
if (!isEmpty())
top=head.getData();
return top;
}
最后是我的toString方法:
public String toString() {
String retStr = "Contents:\n";
Node current = head;
while(current != null) {
retStr += current.getData() + "\n";
current = current.getNext();
}
return retStr;
}
我得到looks like this的输出
我一直试图弄清楚这是我的方法之一还是For Else循环。先感谢您。
还有here are my classes用于打牌游戏和方法
答案 0 :(得分:0)
看起来您有点混合了多种方法来做同一件事。您有Node
个对象,这些对象跟踪数据以及一个next
。但是,您还为stack
方法使用了peek()
数组,但是没有任何东西可以为stack
添加任何东西。
您是否打算删除数组行为以使用链表,而忘记更新peek()
方法?