java-->模拟Stack

 1 import java.util.Arrays;
 2 import java.util.EmptyStackException;
 3 
 4 public class Stack {
 5     public static void main(String[] args) {
 6         
 7         Stack s = new Stack();
 8         int count = 0;
 9         while (true) {
10             System.out.println(count++ +"elements:"+s.elements.length);
11             s.push(new Object());
12             s.push(new Object());
13             s.pop();
14         }
15     }
16 
17     private Object[] elements;
18     private int size = 0;
19     private static final int DEFAULT_INITIAL_CAPACITY = 16;
20 
21     // 声明Object数据并且初始化.
22     public Stack() {
23         elements = new Object[DEFAULT_INITIAL_CAPACITY];
24     }
25 
26     // 压入栈数据
27     public void push(Object e) {
28         ensureCapacity();
29         elements[size++] = e;
30 
31     }
32 
33     // 弹出栈数据
34     public Object pop() {
35         if (size == 0)
36             throw new EmptyStackException();
37         return elements[--size];
38     }
39 
40     private void ensureCapacity() {
41         if (elements.length == size) {
42             if (elements.length == size) {
43                 elements = Arrays.copyOf(elements, 2 * size + 1);
44             }
45         }
46     }
47 
48 }
Stack

1:初始化栈

2:建立push 方法:功能:压入栈数据;

3:建立pop方法:功能  弹出栈里面数据。

在压入栈方法中,加入如果:栈数据==原来满的话 扩大一倍!

 

 

压入 1 2  3  4 5 6  7 8  弹出 8 7 6 5 4 3 2 1                     先进后出,后进先出。

posted @ 2014-01-16 10:20  深蓝Android  阅读(334)  评论(0编辑  收藏  举报