我无法理解为什么我的值没有存储在堆栈中。
UseStack.java
package test;
import java.util.Scanner;
class UseStack{
private static Scanner obj;
public static void main(String[] args) {
obj = new Scanner(System.in);
System.out.println("Enter the size of Stack....");
int n = obj.nextInt();
Stack stack = new Stack(n);
while(true){
System.out.println("1: Push");
System.out.println("2: Pop");
System.out.println("3: Show");
int choice = obj.nextInt();;
switch(choice){
case 1:
Push push = new Push(n);
push.push();
break;
case 2:
Pop pop = new Pop(n);
pop.pop();
break;
case 3:
Push push1 = new Push(n);
push1.show();
break;
default:
System.out.println("Invalid Option");
break;
}
}
}
}Stack.java
package test;
class Stack {
public int arr[];
public int top;
public int capacity;
public Stack(int size){
this.arr = new int[size];
capacity = size;
top = -1;
}
}Push.java
package test;
import java.util.Scanner;
class Push extends Stack {
public Push(int size) {
super(size);
}
private static Scanner obj;
public void push(){
obj = new Scanner(System.in);
System.out.println("Enter Value to push...");
int value = obj.nextInt();
if(top==capacity-1){
System.out.println("StackOverflow");
return;
}
else{
top++;
arr[top]=value;
System.out.println("Pushed...");
}
}
public void show(){
if(top==-1){
System.out.println("StackUnderFlow");
return;
}
else{
System.out.println("Stack Elements : ");
for(int i=top;i>=0;i--){
System.out.println(arr[i]+" ");
}
}
}
}Pop.java
package test;
class Pop extends Push{
public Pop(int size) {
super(size);
}
public void pop(){
if(top==-1){
System.out.println("StackUnderflow");
return;
}
else{
System.out.println("Poped.. "+arr[top]);
top--;
}
}
}请原谅我对发布整个代码的无知,在这个主题上已经问了几个问题,但是我应该做些什么来克服这个错误……
误差
当我在数组中推送两个值,然后试图显示元素时,我得到了堆栈流.
发布于 2020-07-03 12:56:03
在Push.java中,您需要初始化obj扫描程序,例如
public void push(){
obj = new Scanner(System.in);
...https://stackoverflow.com/questions/62715793
复制相似问题