声明:
主要代码参考自算法(第四版),这里将代码列出,是想和大家交流一些学习心得。
实现思路
1.创建下推栈类
2.定义基本属性和方法
3.定义嵌套节点类
4.定义压栈和弹栈的方法
实现步骤
1.
创建下推栈类并使其支持迭代
//用链表实现下压栈 p94
public class Stack<Item> implements Iterable<Item>
实现iterator()方法,并且创建内部类ListIterator
//实现iterator(),用于返回iterator对象
@Override
public Iterator<Item> iterator() { return new ListIterator(); }
//创建嵌套类ListIterator(重写hasNext()和next())
private class ListIterator implements Iterator<Item>{
//获得栈顶节点
private Node current = first;
//栈顶节点不为空,则有下一个节点
@Override
public boolean hasNext() { return current != null; }
//向下迭代的方法
@Override
public Item next() {
Item item = current.item; //获得当前节点信息
current = current.next; //current指向下一个元素
return item; //返回节点信息
}
public void remove(){}
}
2.
定义基本属性和方法: