第二周的内容在算法部分主要是经典数据结构栈和队列以及三种基本排序算法(选择排序、插入排序和希尔排序),在应用这些结构的时候,涉及到Java特有的Generics和Iterators。作业已提交到GitHub的个人仓库,仓库页面:https://github.com/Revil/algs-deque,仓库地址https://github.com/Revil/algs-deque.git
分三部分进行说明:
Java Generics & Iterators
1. Generics:Generics 将参数类型也作为类的输入,这样可以提高代码的重用度。不同类型的输入,处理方式相同的情况下,就可以使用Generics降低代码的冗余。而且Generics提供编译时的类型检查,避免使用类型强制转换时引发意外的错误。以下面这个类为例:
public class Deque<Item> {
private Node sentinel;
private int count;
// insert the item at the front
public void addFirst(Item item) {}
// insert the item at the end
public void addLast(Item item) {}
}
对于primitivedata type,如int, string等,其对应的Generics类型除i