Programming Assignment 2: Randomized Queues and Deques
题目地址:
http://coursera.cs.princeton.edu/algs4/assignments/queues.html-------------------------------------------------------------------------
正文:
第二周作业要做两个类第一个是使用迭代器iterator的双向队列类
public class Deque<Item> implements Iterable<Item> {
public Deque() // construct an empty deque
public boolean isEmpty() // is the deque empty?
public int size() // return the number of items on the deque
public void addFirst(Item item) // insert the item at the front
public void addLast(Item item) // insert the item at the end
public Item removeFirst() // delete and return the item at the front
public Item removeLast() // delete and return the item at the end
public Iterator<Item> iterator() // return an iterator over items in order from front to end
public static void main(String[] args) // unit testing
}
JAVA的队列与C的一致,这里采用的是线性表实现。
第一个类应该不难,无非就是两侧都可以入队、出队。
相信掌握了单队列的同学很快就可以独立编写出来。
稍微注意一下捕捉和抛出错误,按照题目里给予的方式即可,否则会扣分。
要说一下迭代器的问题。
迭代器照我的理解就是一种方便使用遍历方法的接口。
在iterator里面,我们要实现遍历的方法。
源代码如下:
import java.util.Iterator;
public class Deque<Item> implements Iterabl