当前位置 博文首页 > hebtu666:【大总结1】数据结构与传统算法总结

    hebtu666:【大总结1】数据结构与传统算法总结

    作者:[db:作者] 时间:2021-09-03 15:09

    由于时间和水平有限,肯定有错误或者写得不好的地方

    欢迎在文章下评论指出。

    ?

    涉及语言:

    py3:注重算法本身的知识

    c/c++:实现基础数据结构和算法

    java:实现较复杂数据结构

    ?

    ?


    一、概述


    ? ? ? ? ? ? ? ? ? ? ? ???c语言知识体系

    ? ? ? ? ? ? ? ? ? ? ? ??算法体系参考


    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记1(复习c、课程概述)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记2(基本概念、时空复杂度)

    ? ? ? ? ? ? ? ? ? ? ? ??时空复杂度

    ? ? ? ? ? ? ? ? ? ? ? ??浅析P/NP/NPC

    ? ? ? ? ? ? ? ? ? ? ? ??引入:算法优化


    提高篇

    ? ? ? ? ? ? ? ? ? ? ? ??基础动态规划

    ? ? ? ? ? ? ? ? ? ? ? ??摔手机:借一道水题打开思路


    二、线性表

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记3(线性表及顺序表示)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记5(链表概述)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记6(链表选讲、静态链表)

    ? ? ? ? ? ? ? ? ? ? ? ??作业1讲解(最大子数组二维多维)

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??顺序存储实现(静/动)

    ? ? ? ? ? ? ? ? ? ? ? ??单链表不带头(标准实现)

    ? ? ? ? ? ? ? ? ? ? ? ??单链表不带头(压缩代码)

    ? ? ? ? ? ? ? ? ? ? ? ??双链表带头

    ? ? ? ? 应用:

    ? ? ? ? ? ? ? ? ? ? ? ??约瑟夫环(顺序、链式、数学)

    ? ? ? ? ? ? ? ? ? ? ? ??线性表表示集合

    ? ? ? ? ? ? ? ? ? ? ? ??线性表表示一元多项式

    ? ? ? ? ? ? ? ? ? ? ? ??链表环相关问题

    ? ? ? ? ? ? ? ? ? ? ? ??链表coding能力练习:归并排序

    ? ? ? ? ? ? ? ? ? ? ? ??LRU介绍和实现


    ?提高篇

    ? ? ? ? ? ? ? ? ? ? ??链表coding能力练习:相交问题


    三、栈和队列

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记7(栈、队列基础)

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??数组实现栈

    ? ? ? ? ? ? ? ? ? ? ? ??链表实现栈

    ? ? ? ? ? ? ? ? ? ? ? ??数组实现队列(易懂实现循环)

    ? ? ? ? ? ? ? ? ? ? ? ??链表实现队列

    ? ? ? ? ? ? ? ? ? ? ? ??双栈

    ? ? ? ? ? ? ? ? ? ? ? ??栈和队列的互相模拟

    ? ? ? ? 应用:

    ? ? ? ? ? ? ? ? ? ? ? ??栈排序

    ? ? ? ? ? ? ? ? ? ? ? ??括号匹配

    ? ? ? ? ? ? ? ? ? ? ? ??表达式求值

    ? ? ? ? ? ? ? ? ? ? ? ??简单迷宫问题

    ? ? ? ? ? ? ? ? ? ? ? ??借汉诺塔理解栈与递归

    ? ? ? ? ? ? ? ? ? ? ? ??手动维护栈实现二叉树三种遍历

    ? ? ? ? ? ? ? ? ? ? ? ???深搜、广搜与栈、队列

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??单调栈

    ? ? ? ? ? ? ? ? ? ? ? ??单调双端队列


    提高篇

    ? ? ? ? ? ? ? ? ? ? ? ??双端队列优化的背包问题


    四、串

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记8(串基础)

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??串的定长表示

    ? ? ? ? ? ? ? ? ? ? ? ??串的堆分配

    ? ? ? ? ? ? ? ? ? ? ? ??为何py整数不会溢出

    ? ? ? ? ? ? ? ? ? ? ? ??c语言文件操作

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??一文读懂KMP

    ? ? ? ? ? ? ? ? ? ? ? ??一文读懂Manacher

    ? ? ? ? ? ? ? ? ? ? ? ??KMP题集1

    ? ? ? ? ? ? ? ? ? ? ? ??KMP题集2

    ? ? ? ? ? ? ? ? ? ? ? ??KMP+DP入门

    ? ? ? ? ? ? ? ? ? ? ? ??字符串上的动态规划

    ? ? ? ? ? ? ? ? ? ? ? ??前缀树

    ? ? ? ? ? ? ? ? ? ? ? ??后缀树/后缀数组概述

    ? ? ? ? ? ? ? ? ? ? ? ??AC自动机


    五、数组和广义表

    注:题目慢慢添加

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记9(数组、广义表)

    ? ? ? ? 部分题目实现:

    ? ? ? ? ? ? ? ? ? ? ? ??二维数组基操四连

    ? ? ? ? ? ? ? ? ? ? ? ??数组基本操作三连(1)

    ? ? ? ? ? ? ? ? ? ? ? ??数组基本操作三连(2)

    ? ? ? ? ? ? ? ? ? ? ? ??数组基本操作三连(3)

    ? ? ? ? ? ? ? ? ? ? ? ??数组基本操作三连(4)

    ? ? ? ? ? ? ? ? ? ? ? ??数组精选操作(5)

    ? ? ? ? ? ? ? ? ? ? ? ??数组精选操作(6)

    ? ? ? ? 应用:

    ? ? ? ? ? ? ? ? ? ? ? ??2048小游戏实现

    ? ? ? ? ? ? ? ? ? ? ? ??吃豆人

    ? ? ? ? ? ? ? ? ? ? ? ??贪吃蛇


    六、树

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记10(树和二叉树概述)

    ? ? ? ? ? ? ? ? ? ? ? ??二叉树概述

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记11(满二叉树、完全二叉树)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记12(二叉树存储与遍历)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记13(树的存储)

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??理解二叉树遍历

    ? ? ? ? ? ? ? ? ? ? ? ??二叉树序列化/反序列化

    ? ? ? ? ? ? ? ? ? ? ? ??先序中序后序两两结合重建二叉树

    ? ? ? ? ? ? ? ? ? ? ? ??先序中序数组推后序数组

    ? ? ? ? ? ? ? ? ? ? ? ??直观打印二叉树

    ? ? ? ? ? ? ? ? ? ? ? ??根据数组建立平衡二叉搜索树

    ? ? ? ? ? ? ? ? ? ? ? ??平衡二叉树的判断

    ? ? ? ? ? ? ? ? ? ? ? ??完全二叉树的判断

    ? ? ? ? ? ? ? ? ? ? ? ??搜索二叉树的判断

    ? ? ? ? ? ? ? ? ? ? ? ??二叉树最长路径

    ? ? ? ? ? ? ? ? ? ? ? ??时间低于O(N)求完全二叉树结点个数

    ? ? ? ? 应用:

    ? ? ? ? ? ? ? ? ? ? ? ??二叉搜索树

    ? ? ? ? ? ? ? ? ? ? ? ??堆

    ? ? ? ? ? ? ? ? ? ? ? ??堆应用例题三连

    ? ? ? ? ? ? ? ? ? ? ? ??并查集

    ? ? ? ? ? ? ? ? ? ? ? ??并查集入门题集

    ? ? ? ? ? ? ? ? ? ? ? ??线段树

    ? ? ? ? ? ? ? ? ? ? ? ??树状数组

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??最大搜索子树

    ? ? ? ? ? ? ? ? ? ? ? ??morris遍历 空间O(1)


    七、图

    ? ? ? ? 笔记:

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记14(图基础)

    ? ? ? ? ? ? ? ? ? ? ? ??课上笔记15(存储、遍历)

    ? ? ? ? 基础:

    ? ? ? ? ? ? ? ? ? ? ? ??最小生成树

    ? ? ? ? ? ? ? ? ? ? ? ??拓扑排序

    ? ? ? ? ? ? ? ? ? ? ? ??最短路

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??迷宫

    ? ? ? ? ? ? ? ? ? ? ? ??棋盘简单深搜广搜

    ? ? ? ? ? ? ? ? ? ? ? ??皇后问题(位运算)

    ? ? ? ? ? ? ? ? ? ? ? ??旅行商问题(认识状态压缩)


    八、动态存储


    九、查找

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??二分及拓展

    ? ? ? ? ? ? ? ? ? ? ? ??二叉搜索树实现

    ? ? ? ? ? ? ? ? ? ? ? ??数组建立二叉搜索树

    ? ? ? ? ? ? ? ? ? ? ? ??自平衡二叉搜索树

    ? ? ? ? ? ? ? ? ? ? ? ??AVL Tree

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??HashMap记录的动态规划

    ? ? ? ? ? ? ? ? ? ? ? ??跳表介绍和实现


    十、排序

    ? ? ? ? 基础代码实现:

    ? ? ? ? ? ? ? ? ? ? ? ??八种排序

    ? ? ? ? 相关算法:

    ? ? ? ? ? ? ? ? ? ? ? ??快排-荷兰国旗

    ? ? ? ? ? ? ? ? ? ? ? ??快排-前m大元素

    ? ? ? ? ? ? ? ? ? ? ? ??归并-求逆序数

    ? ? ? ? ? ? ? ? ? ? ? ??桶思想-相邻数最大差值

    ? ? ? ? ? ? ? ? ? ? ? ??堆

    ? ? ? ? ? ? ? ? ? ? ? ??堆应用例题三连

    ? ? ? ? ? ? ? ? ? ? ? ??BFPRT

    ?

    cs