1. package com.tw.dst.sq;  
  2.  
  3.  
  4. /**  
  5.  *   
  6.  * <p>栈算法:栈是一种后进先出的方式</p>  
  7.  * @author tangw 2010-11-26  
  8.  */ 
  9. public class Stack {  
  10.      //栈数组     
  11.     long stackArr[];  
  12.     //栈的大小     
  13.     int maxSize;     
  14.     //栈的顶部     
  15.     int top;     
  16.     //初始化一个大小为size的栈     
  17.     public Stack(int size){     
  18.         maxSize = size;      
  19.         stackArr = new long[size];     
  20.         top = -1;     
  21.     }     
  22.     //出栈操作     
  23.     public long pop(){     
  24.         return stackArr[top--];     
  25.     }     
  26.     //进栈操作     
  27.     public void push(long value){     
  28.         stackArr[++top] = value;     
  29.     }     
  30.     //判断栈是否为空     
  31.     public boolean isEmpty(){     
  32.         return top == -1;     
  33.     }     
  34.     //判断栈是否已满     
  35.     public boolean isFull(){     
  36.         return top == maxSize-1;     
  37.     }     
  38.     //取栈顶元素     
  39.     public long peek(){     
  40.         return stackArr[top];  
  41.     }     
  42.     public static void main(String[] args) {     
  43.         Stack stack = new Stack(10);  
  44.           
  45.         System.out.println("----插入数据----");   
  46.         while(!stack.isFull()){     
  47.             long v = (long) (Math.random()*100);     
  48.             stack.push(v);     
  49.             System.out.print(v+" ");     
  50.         }   
  51.           
  52.         System.out.println("----取出数据----");     
  53.         while(!stack.isEmpty()){     
  54.             long topValue = stack.pop();     
  55.             System.out.print(topValue+" ");     
  56.         }   
  57.     }     
  58. }