普林斯顿算法课第二周作业

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值