这两种处理堆栈和队列的方法有什么区别?这两个叫什么?
第一种方式:
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();
}
}
他们也正确吗?试图很好地学习这些,但互联网上的解释对这些都很模糊..
答案 0 :(得分:0)
我不是百分之百地确定你的意思。
查看您的第一个代码段,我们可以看到您声明了类StackMethods
。在第二个实例中,您将实例化类StackMethods
的对象。
因此,您在第二个代码片段的main方法中所做的只是创建一个对象,该对象调用您在上面的类中声明的方法push(),pop()和display()。你没有实际实现两个数据结构,只是一个基本的堆栈。
好消息是,你已经掌握了堆栈的概念,因为你实现了这个类&#39; StackMethods&#39;总的来说是正确的。
关于队列和堆栈之间的区别,this question可能会对您有所帮助:
如果这个问题没有回答你的问题,我只是误解了它,请发表评论然后让我知道,以便我能帮助你提高一点。