算法 第四版 1.3.32 Steque

来源:互联网 发布:php完美分页类 编辑:程序博客网 时间:2024/06/01 08:11
package Cap1;import java.util.Iterator;import edu.princeton.cs.introcs.StdOut;import edu.princeton.cs.introcs.StdRandom;public class Steque<Item> implements Iterable<Item>{/** * @param args */private Node first;private class Node{Item item;Node next;}public void push(Item item){Node node = new Node();node.item = item;if(first == null){first = node;return;}node.next = first;first = node;}public Item pop(Item item){Node node = first;first = first.next;node.next = null;return node.item;}public void enqueue(Item item){Node node = new Node();node.item = item;if(first == null){first = node;return;}Node cur = first;while(cur.next!=null){cur = cur.next;}cur.next = node;node.next = null;}@Overridepublic Iterator<Item> iterator() {// TODO Auto-generated method stubreturn new StequeIterator();}private class StequeIterator implements Iterator<Item>{private Node cur = first;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn cur != null;}@Overridepublic Item next() {// TODO Auto-generated method stubItem item = cur.item;cur = cur.next;return item;}@Overridepublic void remove() {// TODO Auto-generated method stub}}public static void main(String[] args) {// TODO Auto-generated method stubSteque<Double> s = new Steque<Double>();for(int i=0;i<10;i++)s.push(i*1.0);for(int i=0;i<10;i++)s.enqueue(i*1.0);for(Double d : s)StdOut.println(d);}}
9.08.07.06.05.04.03.02.01.00.00.01.02.03.04.05.06.07.08.09.0