# Algorithm-Pattern

## Algorithm-Pattern

- [Introduction](https://mqjyl2012.gitbook.io/algorithm/master.md): 数据结构和算法基础知识学习和总结。
- [C语言](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c.md)
- [C/C++编译器](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/cc++-bian-yi-qi.md)
- [宏的使用](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/macro.md)
- [编译过程](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/compile-process.md)
- [指针 & 数组](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/pointer-array.md)
- [柔性数组](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/flexible-array.md)
- [函数指针 & 回调函数](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/function-pointer-callback-function.md)
- [C标准库之stdio](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/clib-stdio.md)
- [C标准库之string](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/clib-string.md)
- [C标准库之errno](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/clib-errno.md)
- [C标准库之stdarg](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/clib-stdarg.md)
- [C标准库之regex](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c/clib-regex.md)
- [C++基础语法](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax.md): c++基础语法复习，主要包括常考点、难点、易错点和重要特性。（基于C++11标准，涉及到C++14标准和C++17标准的新特性会说明）
- [自增(++) & 自减(--)](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/auto-increment-attenuation.md)
- [c语言到c++](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/c-cpp.md)
- [可变模板参数](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/variable-template-parameter.md)
- [强制类型转换](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/type-conversion.md)
- [C/C++类型转换的本质](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/nature-of-type-conversion.md)
- [指针 & 引用](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/pointers-and-references.md)
- [const的用法](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/keyword-const.md)
- [static的用法](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/keyword-static.md)
- [重要的关键字（一）](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/keywords-1.md)
- [重要的关键字（二）](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/keywords-2.md)
- [内存申请和释放](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/memory-request-and-release.md)
- [内联函数](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/inline-functions.md)
- [函数 & 运算符重载](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/operator-overloading.md)
- [面向对象之封装](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/oop-encapsulation.md)
- [构造函数 & 析构函数](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/constructor-destructor.md)
- [面向对象之继承](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/oop-inheritance.md)
- [面向对象之多态](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/oop-polymorphism.md)
- [泛型编程](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/generic-programming.md)
- [异常](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/exception.md)
- [再谈函数指针](https://mqjyl2012.gitbook.io/algorithm/c-cpp/c++-syntax/retalk-function-pointer.md)
- [C++并发编程](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-concurrent-programming.md)
- [C++的锁](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-concurrent-programming/locks.md)
- [并发与多线程](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-concurrent-programming/concurrency-and-multithreading.md)
- [C++高级特性](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++.md)
- [函数对象](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/function-object.md)
- [移动语义 & 完美转发](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/mobile-semantic-perfect-forward.md)
- [lambda表达式](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/lambda.md)
- [RTTI技术](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/rtti.md)
- [RAII技术](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/raii.md)
- [智能指针](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/smart-pointer.md)
- [模板的特化](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/template-specialization.md)
- [C++静态库和动态库](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/static-and-dynamic-libraries.md)
- [内存溢出和内存泄漏](https://mqjyl2012.gitbook.io/algorithm/c-cpp/advanced-c++/memory-overflow--and-leak.md)
- [STL基础](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics.md): 对C++11标准下的STL的使用方法进行学习和总结。（涉及到C++14标准和C++17标准的新特性会说明）
- [String](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/string-class.md)
- [array/vector/list](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/array-vector-list.md): 总结 SGI STL 中的 vector 和 list 两个容器的用法。
- [deque/priority\_queue](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/deque-priority_queue.md): 总结 SGI STL 中的 deque、stack 和 queue 三个容器的用法。
- [set/map](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/set-map.md)
- [unordered\_set/unordered\_map](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/unordered_set-unordered_map.md)
- [algorithm\_1](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/algorithm-1.md)
- [functional](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/functional.md)
- [allocator](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-basics/allocator.md)
- [C++标准库](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library.md)
- [IO](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library/cpp-io-library.md)
- [Tuple](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library/pair-tuple.md)
- [regex](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library/regex.md)
- [bitset](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library/bitset.md)
- [numeric](https://mqjyl2012.gitbook.io/algorithm/c-cpp/cpp-standard-library/numeric.md)
- [STL深入源码](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-source-analysis.md)
- [vector内部实现](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-source-analysis/vector-source-code.md)
- [deque内部实现](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-source-analysis/deque-source-code.md)
- [sort函数实现](https://mqjyl2012.gitbook.io/algorithm/c-cpp/stl-source-analysis/sort-realization-mechanism.md)
- [第三方库](https://mqjyl2012.gitbook.io/algorithm/c-cpp/third-party-libraries.md)
- [JsonCpp](https://mqjyl2012.gitbook.io/algorithm/c-cpp/third-party-libraries/jsoncpp.md)
- [ProtoBuf](https://mqjyl2012.gitbook.io/algorithm/c-cpp/third-party-libraries/protobuf.md)
- [线性表](https://mqjyl2012.gitbook.io/algorithm/data-structure/linear-list.md): 这部分主要考察线性表的操作，包括数组、单链表和双向链表等。
- [字符串](https://mqjyl2012.gitbook.io/algorithm/data-structure/string.md): 总结字符串相关的算法考点和题型。
- [栈和队列](https://mqjyl2012.gitbook.io/algorithm/data-structure/stack-and-queue.md): 栈和队列的使用场景和相关算法题实现。
- [二叉树](https://mqjyl2012.gitbook.io/algorithm/data-structure/binary-tree.md): 二叉树相关的算法实现。
- [平衡二叉树](https://mqjyl2012.gitbook.io/algorithm/data-structure/balanced-binary-tree.md): 二叉搜索树和平衡二叉搜索树的相关概念和算法实现。
- [平衡多路搜索树](https://mqjyl2012.gitbook.io/algorithm/data-structure/balanced-multipath-search-tree.md)
- [树结构的延申](https://mqjyl2012.gitbook.io/algorithm/data-structure/tree-extension.md)
- [图](https://mqjyl2012.gitbook.io/algorithm/data-structure/graph.md)
- [二进制](https://mqjyl2012.gitbook.io/algorithm/data-structure/binary-system.md): 二进制操作相关的试题解答。
- [散列表](https://mqjyl2012.gitbook.io/algorithm/data-structure/hash-table.md)
- [排序算法](https://mqjyl2012.gitbook.io/algorithm/algorithm/sort-algorithm.md): 总结常用的十大内部排序算法，并提供代码实现。
- [查找算法](https://mqjyl2012.gitbook.io/algorithm/algorithm/search-algorithm.md)
- [数学问题](https://mqjyl2012.gitbook.io/algorithm/algorithm/mathematical-problems.md)
- [并查集](https://mqjyl2012.gitbook.io/algorithm/algorithm/union-find.md): 总结并查集的特性和常见题型。
- [递归算法](https://mqjyl2012.gitbook.io/algorithm/algorithm/recursive-algorithm.md)
- [附加——主定理](https://mqjyl2012.gitbook.io/algorithm/algorithm/master-theorem.md)
- [Catalan数](https://mqjyl2012.gitbook.io/algorithm/algorithm/catalan.md)
- [滑动窗口思想](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/sliding-window.md)
- [BFS/DFS](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/bfs-dfs.md)
- [二分法](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/dichotomy.md)
- [回溯法](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/backtracking-algorithm.md): 学习回溯的算法思维，总结常见的题型。
- [贪心算法](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/greedy-algorithm.md)
- [分治法](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/divide-and-conquer-algorithm.md): 五大常用算法设计思想之一：分治算法，介绍其思想和应用场景，提供经典题目的解答。
- [动态规划](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/dynamic-programming-algorithm.md): 学习动态规划的算法思维，总结常见的题型。
- [分支限界算法](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/branch-and-bound.md)
- [有限状态机（FSM）](https://mqjyl2012.gitbook.io/algorithm/algorithm-thinking/finite-state-machine.md)
- [死磕二叉树](https://mqjyl2012.gitbook.io/algorithm/leetcode/stick-to-binary-tree.md)
- [股票买卖问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/stockjobbing.md)
- [打家劫舍问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/robbery.md)
- [跳跃游戏问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/jump-game.md)
- [括号匹配问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/bracket-matching.md)
- [石子游戏问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/stone-game.md)
- [子序列问题](https://mqjyl2012.gitbook.io/algorithm/leetcode/subsequences.md)
- [数组 & 矩阵](https://mqjyl2012.gitbook.io/algorithm/leetcode/array-matrix.md)
- [排列 & 组合](https://mqjyl2012.gitbook.io/algorithm/leetcode/permutation-and-combination.md)
- [几何问题](https://mqjyl2012.gitbook.io/algorithm/classical-problem/geometry-problems.md)
- [区间问题](https://mqjyl2012.gitbook.io/algorithm/classical-problem/interval-questions.md)
- [背包问题](https://mqjyl2012.gitbook.io/algorithm/classical-problem/backpack-questions.md)
- [石子堆问题](https://mqjyl2012.gitbook.io/algorithm/classical-problem/gravel-pile.md)
- [表达式求值](https://mqjyl2012.gitbook.io/algorithm/classical-problem/expression-evaluation.md): 三种表达式的的相互转化和求值算法实现。
- [数据结构和算法基础](https://mqjyl2012.gitbook.io/algorithm/interview-question/basic-knowledge.md)
- [程序设计题](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems.md)
- [实现双线程交替打印](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/double-thread-alternate-printing.md)
- [C++实现读写锁](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/cpp-rwlock.md)
- [实现阻塞队列](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/blocking-queue.md)
- [实现环形队列](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/circle-queue.md)
- [实现线程池](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/thread-pool.md)
- [实现智能指针](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/smart-pointer.md)
- [实现string类](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/string-class.md)
- [实现高性能local cache](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/local-cache.md)
- [实现内存池](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/memory-pool.md)
- [生产者-消费者模型](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/producer-consumer.md)
- [设计定时器](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems/timer.md)
- [经典的算法题](https://mqjyl2012.gitbook.io/algorithm/interview-question/classic-algorithm-problems.md)
- [C++面试题总结](https://mqjyl2012.gitbook.io/algorithm/interview-question/cpp-interview-question.md)
- [面试算法题总结](https://mqjyl2012.gitbook.io/algorithm/interview-question/interview-algorithm.md)
