一、基础
1.揹包,队列,栈
揹包:一种不支持删除元素的集合数据类型,迭代的顺序不确定
先进先出队列:一种基于先进先出策略的集合类型
下压栈:一种基于后进先出策略的集合类型
2.集合数据类型的体现
定容栈、泛型、迭代
3.链表
链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。链表表示的是一列元素。
链表(首尾)增删快:将原结点的引用指向新结点,删除结点,只需将引用指向自身,故链表的增删速度与其长度无关。
实现任意插入和删除应该使用双向链表。
链表的遍历:初始化索引变量,通过.next访问到引用为null为止。
for(Node x=first; x!=null ; x=x.next)
4.算法分析
描述 增长的数量级 典型代码 说明 举例
常数级别 1 a=b+c 普通语句 相加
对数级别 logN 二分查找 二分策略 二分查找
线性级别 N for()if 循环 找出最大元素
线性对数级别 NlogN 分治 归并排序
平方级别 N^2 for for if 双层循环 检查所有元素对
立方级别 N^3 三层循环 检查所有三元组
指数级别 2^N 穷举查找 检查所有子集