java实现堆栈 打印英文字母表

来源:互联网 发布:mac如何彻底关机 编辑:程序博客网 时间:2024/04/29 21:11

堆栈:

栈又称堆栈,是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。

  把对栈进行运算的一端称为栈顶,另一端称为栈底。

  向一个栈插入新元素称为入栈或进栈 从一个栈删除元素称为退栈或出栈

因为后进栈的元素必定先出栈,所以又把栈称为后进先出表(Last In First Out, LIFO)。

堆栈定义:

public class StackOne<T> {   private T[]  data;   private int top=-1;   //无参构造函数   public StackOne()   {   this.data=(T[])new Object[10];   this.top=-1;   }   //带参构造函数   public StackOne(int size)   {   this.data=(T[])new Object[size];   this.top=-1;   }      public boolean push(T m)   {   if(top==data.length-1) return false;   top=top+1;    data[top]=m;   return true;      }      public  T pop()   {   if(top==-1) return null;   T m=data[top];   top=top-1;   return m;   }      public boolean isFull()   {   return top==data.length-1;   }      public boolean isEmepty()   {   return top==-1;   }}

测试:

public class StackOneTest {public static void main(String[] args) {StackOne<Character> charStack=new StackOne<Character>(26*2);for(int i=26;!charStack.isFull();i--)//一直压栈直到栈满{//堆栈先进后出,小写字母排在大写字母后面,应先进栈charStack.push((char)(i+'z'-26));//大写字母进栈charStack.push((char)(i+'Z'-26));}//全部出栈System.out.println("英文字母表:");for(int i=1;!charStack.isEmepty();i++){System.out.print(charStack.pop()+" ");System.out.print(charStack.pop()+"   ");if(i%7==0) System.out.println();}}}
结果: