package chaolong;
import java.util.Scanner;
public class Ak
{
private int[] stack; //栈数据成员
private int m1; //栈1的位置指针
private int m2; //栈2的位置指针
public Ak(int a)
{
stack=new int[a]; //设置栈的容量
m1=-1; //为一个空栈,所以栈指针设置为-1
m2=stack.length;
}
public void pop() //出栈函数
{
Scanner in1=new Scanner(System.in);
System.out.println("请输入你要删除数据的栈(tip:1==栈1,2==栈2):");
int a=in1.nextInt();
switch(a)
{
case 1:
{
if(m1==-1)
{
System.out.println("栈一为空不能进行删除操作:");
return;
}
System.out.print("请输入你要删除元素的个数:");
Scanner in2=new Scanner(System.in);
int b=in2.nextInt();
m1-=b;
break;
}
case 2:
{
if(m2==stack.length)
{
System.out.println("栈二为空不能进行删除操作:");
return;
}
System.out.print("请输入你要删除元素的个数:");
Scanner in2=new Scanner(System.in);
int b=in2.nextInt();
m2+=b;
break;
}
}
}
public void push()
{
if(m1+1==m2)
{
System.out.println("栈已经满了无法再添加元素:");
return;
}
else
{
Scanner in1=new Scanner(System.in);
System.out.println("请输入你要插入数据的栈(tip:1==栈1,2==栈2):");
int a=in1.nextInt();
switch(a)
{
case 1:
{
System.out.print("请输入你要插入元素的个数:");
Scanner in2=new Scanner(System.in);
int a1=in2.nextInt();
while(m1+a1>m2-1)
{
System.out.println("你插入的元素个数超过了剩余空间限制,请宠重新输入");
a1=in2.nextInt();
}
System.out.println("请输入你要插入的数据:");
for(int i=1;i<=a1;i++)
{
stack[m1+i]=in2.nextInt();
}
m1+=a1;
break;
}
case 2:
{
System.out.print("请输入你要插入元素的个数:");
Scanner in2=new Scanner(System.in);
int a1=in2.nextInt();
while(m2-a1>m2+1)
{
System.out.println("你插入的元素个数超过了剩余空间限制,请重新输入");
a1=in2.nextInt();
}
System.out.println("请输入你要插入的数据:");
for(int i=1;i<=a1;i++)
{
stack[m2-i]=in2.nextInt();
}
m2-=a1;
break;
}
}
}
}
public void readAllStack()
{
for(int i=0;i<=m1;i++)
{
System.out.print("| "+stack[i]+" |");
}
for(int i=m2;i<stack.length;i++)
{
System.out.print("| "+stack[i]+" |");
}
System.out.println();
}
public static void main(String[] args)
{
Ak a=new Ak(10); //创建一个容量为10的一个栈
a.push();
a.push();
a.readAllStack();
a.pop();
a.readAllStack();
}
}