java 代码
- /**
- * Stack.java
- * 线性表之栈
- * 栈的特点:
- * 先进后出
- * 即, 从头部加入(push)一个新数据
- * 从头部取出(pop)一个数据
- */
- package line;
- /**
- * @author sunxboy
- * 9:59:52 AM May 22, 2007
- */
- public class Stack {
- int[] data;
- int maxSize;
- int top;
- public Stack(int maxSize) {
- this.maxSize = maxSize;
- data = new int[maxSize];
- top = -1;
- }
- /**
- * 依次加入数据
- * @param data 要加入的数据通信
- * @return 添加是否成功
- */
- public boolean push(int data) {
- if(top+1== maxSize) {
- System.out.println("栈已满!");
- return false;
- }
- this.data[++top] = data;
- return true;
- }
- /**
- * 从栈中取出数据
- * @return 取出的数据
- */
- public int pop() throws Exception{
- if(top==-1) {
- throw new Exception("栈已空!");
- }
- return this.data[top--];
- }
- public static void main(String[] args) throws Exception {
- Stack stack=new Stack(1000);
- stack.push(1);
- stack.push(2);
- stack.push(3);
- stack.push(4);
- stack.push(5);
- while(stack.top>=0)
- {
- System.out.println(stack.pop());
- }
- }
- }