您的位置:首页 > 编程语言 > Java开发

数组实现动态栈,java

2014-03-26 11:27 274 查看
1.什么叫栈结构?

        栈结构又叫下压栈,具有先进后出的特点

         比始下面的图,一开始的时候是1,2,3,4,如果要一个个都出来那么顺序就是4,3,2,1这个很容易理解(第一次画图)

         

2.结构的应用:

            最容易想到的就是进程的调用

3.栈结构的数组实现

        public class ResizingArrayStack<Item> implements Iterable<Item> {

private Item[] a = (Item[]) new Object[1];
private int N;

public boolean isEmpty() {
return N == 0;
}

public int size() {
return N;
}

private void resize(int max) {

Item[] temp = (Item[]) new Object[max];

for (int i = 0; i < N; i++)
temp[i] = a[i];
a = temp;

}

public void push(Item item) {

if (N == a.length)
resize(2 * a.length);
a[N++] = item;

}

public Item pop() {

Item item = a[--N];
a
= null;
if (N > 0 && N == a.length / 4)
resize(a.length / 2);

return item;

}

@Override
public Iterator<Item> iterator() {

return new RevererArrayIterator();
}

private class RevererArrayIterator implements Iterator<Item> {

private int i = N;

@Override
public boolean hasNext() {

return i > 0;
}

@Override
public Item next() {

return a[--i];
}

@Override
public void remove() {
// TODO Auto-generated method stub

}

}

}


         

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: