java.util.LinkedList 中的 addFirst()
addFirst() in java.util.LinkedList
这是作业。
我正在使用链表制作堆栈。我选择使用 Java 的 java.util.LinkedList 包中的链表。当我在 Main class 中调用 addFirst() 方法时,程序不会完成。它就像一个无限循环,但据我所知不涉及任何循环。这是代码:
package assignment3;
import java.util.LinkedList;
/**
*
* @author Eric
*/
public class LinkedListStack<T> {
LinkedList linkedList = new LinkedList();
public boolean isEmpty() {
if (linkedList.isEmpty()) {
return true;
} else {
return false;
}
}
public int size() {
int size = linkedList.size();
System.out.println("The size of the stack is " + size);
return size;
}
// This is the problem method.
public void push(T element) {
linkedList.addFirst(element);
}
public void pop() {
while(!linkedList.isEmpty()){
linkedList.removeFirst();
}
}
public void peek() {
while(!linkedList.isEmpty()){
linkedList.peek();
}
System.out.println("The first element in the stack is " + linkedList.peek());
}
}
这是调用 push() 方法的 class Main。
package assignment3;
/**
*
* @author Eric
*/
public class Main {
public static void main(String args[]) {
LinkedListStack linkedListStack = new LinkedListStack();
linkedListStack.push(1); // This never finishes.
linkedListStack.peek();
linkedListStack.size();
}
}
很难测试 LinkedListStack.java 因为我无法将任何东西压入堆栈。我不知道出了什么问题。
while(!linkedList.isEmpty()){
linkedList.peek();
}
peek()
永远不会将链表从非空更改为空,因为它不会更改列表。
but as far as I know there are no loops involved
你认为while
是什么?
这是作业。
我正在使用链表制作堆栈。我选择使用 Java 的 java.util.LinkedList 包中的链表。当我在 Main class 中调用 addFirst() 方法时,程序不会完成。它就像一个无限循环,但据我所知不涉及任何循环。这是代码:
package assignment3;
import java.util.LinkedList;
/**
*
* @author Eric
*/
public class LinkedListStack<T> {
LinkedList linkedList = new LinkedList();
public boolean isEmpty() {
if (linkedList.isEmpty()) {
return true;
} else {
return false;
}
}
public int size() {
int size = linkedList.size();
System.out.println("The size of the stack is " + size);
return size;
}
// This is the problem method.
public void push(T element) {
linkedList.addFirst(element);
}
public void pop() {
while(!linkedList.isEmpty()){
linkedList.removeFirst();
}
}
public void peek() {
while(!linkedList.isEmpty()){
linkedList.peek();
}
System.out.println("The first element in the stack is " + linkedList.peek());
}
}
这是调用 push() 方法的 class Main。
package assignment3;
/**
*
* @author Eric
*/
public class Main {
public static void main(String args[]) {
LinkedListStack linkedListStack = new LinkedListStack();
linkedListStack.push(1); // This never finishes.
linkedListStack.peek();
linkedListStack.size();
}
}
很难测试 LinkedListStack.java 因为我无法将任何东西压入堆栈。我不知道出了什么问题。
while(!linkedList.isEmpty()){
linkedList.peek();
}
peek()
永远不会将链表从非空更改为空,因为它不会更改列表。
but as far as I know there are no loops involved
你认为while
是什么?