目录 扫一扫 源码下载 第1章数据结构概述 1.1逻辑结构 1.2物理结构 1.3算法与结构 习题1 第2章算法与复杂度 2.1算法 2.2算法的复杂度 2.3常见的复杂度 习题2 第3章递归算法 3.1递归算法简介 3.2线性递归与非线性递归 3.2.1线性递归 3.2.2非线性递归 3.3问题与子问题 3.4递归与迭代 3.5多重递归 3.6经典递归 3.6.1杨辉三角形 3.6.2老鼠走迷宫 3.6.3汉诺塔 3.7优化递归 习题3 第4章数组与Arrays类 4.1引用与参数存值 4.1.1数组的引用 4.1.2参数存值 4.2数组与排序 4.2.1快速排序 4.2.2归并排序 4.3数组的二分查找 4.3.1二分法 4.3.2过滤数组 4.4数组的复制 4.4.1复制数组的方法 4.4.2处理重复数据 4.5数组的比较 4.6公共子数组 4.7数组的更新 4.7.1单值更新 4.7.2动态更新 4.8数组的前缀算法 4.9动态遍历 4.9.1动态方法 4.9.2编写动态方法 4.9.3多线程遍历 4.10数组与洗牌 4.11数组与生命游戏 习题4 第5章链表与LinkedList类 5.1链表的特点 5.2创建链表 5.3查询与相等 5.4添加节点 5.5删除节点 5.6更新节点 5.7链表的视图 5.8链表的排序 5.9遍历链表 5.10链表与数组 5.11不可变链表 5.12编写简单的类创建链表 习题5 第6章顺序表与ArrayList类 6.1顺序表的特点 6.2创建顺序表 6.3顺序表的常用方法 6.4遍历顺序表 6.5顺序表与筛选法 6.6顺序表与全排列 6.7顺序表与组合 6.8顺序表与记录 6.9Vector类 习题6 第7章栈与Stack类 7.1栈的特点 7.2栈的创建与独特的方法 7.3栈与回文串 7.4栈与递归 7.5栈与undo操作 7.6栈与括号匹配 7.7栈与深度优先搜索 7.8栈与后缀表达式 习题7 第8章队列与ArrayDeque类 8.1队列的特点 8.2队列的创建与独特的方法 8.3队列与回文串 8.4队列与加密、解密 8.5队列与约瑟夫问题 8.6队列与广度优先搜索 8.7队列与网络爬虫 8.8队列与排队 习题8 第9章二叉树与TreeSet类 9.1二叉树的基本概念 9.2遍历二叉树 9.3二叉树的存储 9.4平衡二叉树 9.5二叉查询树和平衡二叉查询树 9.6TreeSet树集 9.7树集的基本操作 9.8树集的视图 9.9树集与数据统计 9.10树集与过滤数据 9.11树集与节目单 习题9 第10章散列表与HashMap类 10.1散列结构的特点 10.2简单的散列函数 10.3HashMap类 10.4散列表的基本操作 10.5遍历散列表 10.6统计字符、单词出现的次数和频率 10.7散列表与单件模式 10.8散列表与数据缓存 10.9TreeMap类 10.10Hashtable类 习题10 第11章集合与HashSet类 11.1集合的特点 11.2HashSet类 11.3集合的基本操作 11.4集合与数据过滤 11.5正整数集合的生成集 11.6获得随机数的速度 习题11 第12章常用算法与Collections类 12.1排序 12.2二分查找 12.3反转与旋转 12.4洗牌 12.5求最大值与最小值 12.6统计次数和频率 习题12 第13章图论 13.1无向图 13.2有向图 13.3无向网络和有向网络 13.4图的存储 13.5图的遍历 13.6测试连通图 13.7最短路径 13.8最小生成树 习题13 第14章经典算法思想 14.1贪心算法 14.2动态规划 14.3回溯算法 习题14 附录A对象与接口的关键知识点 参考文献