数据结构与传统算法知识总结

涉及语言:
py3:注重算法本身的知识
c/c++:实现基础数据结构和算法
java:实现较复杂数据结构

一、概述
c语言知识体系 https://blog.csdn.net/hebtu666/article/details/82866168
算法体系参考 https://blog.csdn.net/hebtu666/article/details/81837497
课上笔记1(复习c、课程概述)https://blog.csdn.net/hebtu666/article/details/82624070
课上笔记2(基本概念、时空复杂度) https://blog.csdn.net/hebtu666/article/details/82700455
时空复杂度:https://blog.csdn.net/hebtu666/article/details/82463970
浅析P/NP/NPC:https://blog.csdn.net/hebtu666/article/details/82465495
引入:算法优化:https://blog.csdn.net/hebtu666/article/details/79912328
基础动态规划:https://blog.csdn.net/hebtu666/article/details/81777273
摔手机:借一道水题打开思路:https://blog.csdn.net/hebtu666/article/details/84789853

二、线性表
笔记:
课上笔记3(线性表及顺序表示):https://blog.csdn.net/hebtu666/article/details/82753068
课上笔记5(链表概述):https://blog.csdn.net/hebtu666/article/details/82834818

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

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

    基础代码实现:
                    顺序存储实现(静/动)

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

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

                    双链表带头

    应用:
                    约瑟夫环(顺序、链式、数学)

                    线性表表示集合

                    线性表表示一元多项式

                    链表环相关问题

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

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

三、栈和队列
笔记:
课上笔记7(栈、队列基础)

    基础代码实现:
                    数组实现栈

                    链表实现栈

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

                    链表实现队列

                    双栈

                    栈和队列的互相模拟

    应用:
                    栈排序

                    括号匹配

                    表达式求值

                    借汉诺塔理解栈与递归

                    简单迷宫问题

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

                     深搜、广搜与栈、队列

    相关算法:
                    单调栈

                    单调双端队列

                    双端队列优化的背包问题

四、串
笔记:
课上笔记8(串基础)

    基础代码实现:
                    串的定长表示

                    串的堆分配

                    字符串/整数

    相关算法:
                    一文读懂KMP

                    一文读懂Manacher

                    KMP题集1

                    KMP题集2

                    KMP+DP入门

                    字符串上的动态规划

                    前缀树

                    后缀树/后缀数组概述

                    AC自动机

五、数组和广义表
注:寒假完善

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

    基础代码实现:
                    二维数组基操四连

    应用:
                    2048小游戏实现

六、树
笔记:
课上笔记10(树和二叉树概述)

                    二叉树概述

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

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

                    课上笔记13(树的存储)

    基础代码实现:
                    理解二叉树遍历

                    二叉树序列化/反序列化

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

                    先序中序数组推后序数组

                    直观打印二叉树

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

                    平衡二叉树的判断

                    完全二叉树的判断

                    搜索二叉树的判断

                    二叉树最长路径

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

    应用:
                    二叉搜索树

                    堆

                    堆应用例题三连

                    并查集

                    并查集入门题集

                    线段树

                    树状数组

    相关算法:
                    最大搜索子树

                    morris遍历 空间O(1)

七、图
注:寒假完善

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

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

                    图的应用

    相关算法:
                    迷宫

                    棋盘简单深搜广搜

                    皇后问题(位运算)

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

八、动态存储
九、查找
基础代码实现:
二分及拓展

                    二叉搜索树实现

                    数组建立二叉搜索树

                    自平衡二叉搜索树

                    AVL Tree

    相关算法:
                    HashMap记录的动态规划

注:哈希和自平衡搜索二叉树类能做的事太多了,就不一一列举了。

十、排序
基础代码实现:
八种排序

扫描二维码关注公众号,回复: 6122394 查看本文章
    相关算法:
                    快排-荷兰国旗

                    快排-前m大元素

                    归并-求逆序数

                    堆

                    堆应用例题三连

                    BFPRT

作者:hebtu666
原文:https://blog.csdn.net/hebtu666/article/details/83011422

猜你喜欢

转载自blog.csdn.net/m0_37251750/article/details/85088893