GitBook 在线阅读,PDF、Mobi、ePub下载 https://www.gitbook.com/book/alleniverson/data-structure-and-algorithms/details GitHub托管 https://github.com/JackChan1999/DataStructure 数据结构与算法学习之路 数据结构与算法系列 编程之法:面试和算法心得 计算机常用基础算法 算法学习笔记 学 [数据结构、算法] 的资源推荐 有哪些学习算法的网站推荐? 目录 前言 学数据结构、算法的资源推荐 数据结构 抽象数据类型 数据结构各种算法的C++模板实现 算法复杂度速查表 第1章 顺序表 线性表 线性表的顺序存储实现1 线性表的顺序存储实现2 线性表的顺序存储实现3 顺序表的C++类模板实现1 顺序表的C++类模板实现2 第2章 链表 链表 线性表的链式存储1 线性表的链式存储2 单链表的C++类模板实现1 单链表的C++类模板实现2 单链表的C++类模板实现3 Linux内核链表 双链表1 双链表2 双链表的Java实现1 双链表的Java实现2 循环链表1 循环链表2 约瑟夫问题求解 环形单链表的约瑟夫问题 顺序表与链表的不同 案例:从尾到头打印链表 在O(1)时间删除链表结点 反转链表 复杂链表的复制 链表中倒数第k个结点 第3章 栈 栈 顺序栈的实现1 顺序栈的实现2 顺序栈的C++类模板实现 顺序栈的Java实现 顺序栈和链栈的Java实现 链式栈的实现1 链式栈的实现2 栈的递归应用 栈的应用:后缀计算 栈的应用:就近匹配 栈的应用:中缀转后缀 用栈实现四则运算 栈实例:单词逆序 栈实例:分隔符匹配 进制转换 括号匹配的检验 迷宫求解 栈的应用:解密回文 包含min函数的栈 第4章 队列 队列 顺序队列的实现 队列的顺序存储实现 顺序队列的C++类模板实现 顺序队列的Java实现 队列的链式存储实现 链式队列的实现 链式队列的C++类模板实现 队列的链式存储Java实现 队列的数组和链表的Java实现 队列的LinkedList实现 循环队列 优先级队列 队列的应用 队列:解密QQ号 用两个栈实现队列 第5章 递归 递归 分治法 回溯法 动态规划 斐波那契数列 旋转方阵 全排列问题 第6章 串 字符串 串的模式匹配算法 串的实现 字符串的排列 第7章 数组和广义表 数组 稀疏矩阵 十字链表 广义表 顺时针打印数组 旋转数组的最小数字 第8章 树 二叉树 二叉树概述 二叉树的链式存储 树的非递归遍历 二叉树的Morris遍历 二叉树的创建 重建二叉树 计算树叶子结点 复制二叉树 求二叉树的高度 线索二叉树 哈夫曼树 二叉查找树 二叉堆 堆:神奇的优先队列 树和森林 平衡二叉树 判断二叉树是否为平衡二叉树 并查集 二叉树的镜像 二叉树中和为某一值的路径 二叉搜索树的后序遍历序列 二叉搜索树与双向链表 二叉树的序列化和反序列化 第9章 图论 图的基本概念 图的存储结构 邻接矩阵无向图 邻接矩阵有向图 邻接表有向图 邻接表有向图 巧妙的邻接表(数组实现) 邻接多重表 深度优先搜索 广度优先搜索 最小生成树 Kruskal算法 Prim算法 最短路径 Dijkstra算法 Dijkstra最短路径算法 BellmanFord算法 Floyd算法 只有五行的Floyd最短路径算法 AOV网络和拓扑排序 第10章 查找 二分查找 插值查找 斐波那契查找 二叉查找树 平衡二叉树 B-树 顺序表查找 有序表的折半查找 索引顺序查找 哈希表 哈希表查找 第11章 排序 八大排序算法 最快最简单的排序:桶排序 邻居好说话:冒泡排序 插入排序 堆排序 归并排序 锦标赛排序 快速排序 三路快排 排序算法 希尔排序 排序算法 快速排序 最常用的排序:快速排序 堆排序 排序总结:小哼买书 基数排序 源码剖析 HashMap、哈希表、哈希函数 HashMap的实现原理 HashMap源码剖析 LinkedHashMap源码剖析 LinkedList源码剖析 计算机常用基础算法