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[N] = 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
}
}
}