2
这两种处理堆栈和队列的方式有什么区别?这两个叫什么?java - 堆栈和队列混淆
第一种方式:
import java.util.Arrays;
public class StackMethods {
private int top;
int size;
int[] stack ;
public StackMethods(int arraySize){
size=arraySize;
stack= new int[size];
top=-1;
}
public void push(int value){
if(top==size-1){
System.out.println("Stack is full, can't push a value");
}
else{
top=top+1;
stack[top]=value;
}
}
public void pop(){
if(!isEmpty())
top=top-1;
else{
System.out.println("Can't pop...stack is empty");
}
}
public boolean isEmpty(){
return top==-1;
}
public void display(){
for(int i=0;i<=top;i++){
System.out.print(stack[i]+ " ");
}
System.out.println();
}
}
方式二:
public class StackReviseDemo {
public static void main(String[] args) {
StackMethods newStack = new StackMethods(5);
newStack.push(10);
newStack.push(1);
newStack.push(50);
newStack.push(20);
newStack.push(90);
newStack.display();
newStack.pop();
newStack.pop();
newStack.pop();
newStack.pop();
newStack.display();
}
}
也在他们是正确的?试图学习这些很好,但在互联网上的解释是模糊的这些..
这个问题被格式化错误弄乱了,我试图理解的是数组和堆栈之间的区别,像这样开始,只是似乎没有创建一个负载的方法来推和弹.. Stack s = new Stack (); //之后是方法 –
heathbm
啊好的!因此,当您调用Stack之类的东西时,您可以使用Java Collections Framework。所以Oracle的一些老兄已经为你实施了Stack。该实现中的堆栈很可能基于List,所以它的大小没有限制,因为它使用了指针结构。它也是通用的。所以你可以使用它基本上任何可能的基类,不仅像你的实现整数。它支持比Stack更多的操作。以下是指向Java文档的链接: http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html –
Benjamin
那么是否需要手动创建带有数组的堆栈? – heathbm