首页 > 其他 > 详细

java-->模拟Stack

时间:2014-01-16 23:30:33      阅读:352      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 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                     先进后出,后进先出。

java-->模拟Stack

原文:http://www.cnblogs.com/a-blue/p/3522020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!