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                     先进后出,后进先出。

你可能感兴趣的:(stack)