当前位置:   article > 正文

数据结构知识点总结(超级详细)

数据结构知识点总结

① 数据结构基础

    1、数据结构是什么
        一句话,数据结构是一门教你怎样存储数据的学科。
    2、逻辑结构和物理结构的区别
        逻辑结构描述的数据之间的关系;物理结构描述的是数据的内存中真实的存储状态。
    3、数据结构和算法的区别和联系
        数据结构研究的是怎样存储数据;算法研究的是解决问题的方法。
    4、时间复杂度和空间复杂度
        「时间复杂度」预估算法的执行时间;「空间复杂度」预估算法占用的内存大小。
    5、学习数据结构需要具备的基础
        学习数据结构,必须熟练掌握一门编程语言,再没别的了。
    6、学数据结构的好处
        1) 提升程序员的逻辑思维;
        2) 能力高低的分水岭;
        3) 程序性能好坏的评判标准。

② 线性表

    线性表:用来存储逻辑关系为"一对一"的数据
        线性表(线性存储结构)是什么
    顺序表
        顺序表是什么
            顺序表(顺序存储结构)详解
        顺序表的基本操作(增删查改)
            顺序表的基本操作(C语言详解)
        顺序表和数组的区别
            顺序表与数组根本不是一码事!
    (动态)链表
        单链表
            链表是什么
                链表(链式存储结构)完全攻略
            链表的基本操作(增删查改)
                单链表的基本操作(C语言详解)
            链表和顺序表的区别
                顺序表和链表的区别(优缺点)详解
        双向链表
            双向链表的构建
                双向链表是什么(小白必读)
            双向链表的基本操作(增删查改)
                双向链表基本操作(C语言详解)
        循环链表
            循环链表实现约瑟夫环
        双向循环链表
            双向循环链表是什么
    静态链表
        静态链表是什么
            静态链表是什么(C语言实现)
        静态链表的基本操作(增删查改)
            静态链表的基本操作(C语言详解)
        静态链表和动态链表的区别
            静态链表和动态链表的区别
    热门问题
        删除链表倒数第 N 个结点
            删除链表倒数第N个结点(3种实现方案)
        单链表的反转
            实现单链表的反转(4种算法)
        判断两个单链表相交
            判断两个单链表相交(3种算法)
        判断链表中有环
            判断链表中有环(2种算法)

③ 栈和队列

    栈
        存储逻辑关系为 “一对一” 的数据,存取数据必须遵循 “先进后出” 的原则
            栈是什么
        顺序栈
            顺序栈的基本操作(入栈和出栈)
        链栈
            链栈的基本操作(入栈和出栈)
        和栈有关的热门问题
            递归实现栈的逆序(两种解决方案)
            栈实现进制转换器(C语言完整代码)
            栈解决括号匹配问题(C语言实现)
            栈求表达式的值(C语言实现)
    队列
        存储逻辑关系为“一对一”的数据,存取数据必须遵循 “先进先出” 的原则
            队列是什么(C语言实现)
        顺序队列
            顺序队列的基本操作(入队和出队)
        循环队列(顺序队列的变种)
            循环队列完全攻略(C语言实现)
        链式队列
            链式队列的基本操作(入队和出队)
        和队列有关的热门问题
            两个栈实现一个队列(超级详细)
            两个队列实现一个栈(超级详细)

④ 串

    串结构:专门用来存储多个逻辑关系为 “一对一” 的字符
        串是什么,数据结构中的串(小白必读)
    顺序存储
        定长顺序存储
            串的定长顺序存储结构
        堆分配存储
            串的堆分配存储结构
    链式存储
        块链存储
            串的块链存储结构
    和串相关的算法
        BF算法(普通模式匹配算法)
            BF算法(串的模式匹配算法)
        kmp算法(快速模式匹配算法)
            KMP算法(串的快速模式匹配算法)

⑤ 数组和广义表

    数组和广义表,都可以用来存储多份逻辑关系为 ”一对一“ 的数据
        数组是什么,数据结构中的数组
        什么是广义表、广义表及定义详解
    数组
        顺序存储
            数组的顺序存储结构(C语言实现)
        链式存储
        压缩存储
            如果数据中存储大量无效的元素,可以采用压缩存储的方式
                矩阵(稀疏矩阵)压缩存储(3种方式)
            顺序存储
                三元组顺序表
                    三元组顺序表,稀疏矩阵的三元组表示
                行逻辑链接的顺序表
                    行逻辑链接的顺序表(压缩存储稀疏矩阵)详解
            链式存储
                十字链表
                    十字链表法(压缩存储稀疏矩阵)详解
    广义表
        顺序存储

        链式存储
            广义表的存储结构详解(包含2种存储方案)
        长度和深度
            广义表的深度和长度(C语言)详解
        广义表的复制
            广义表的复制详解(含C语言代码实现)

树 ⑥

    专门存储逻辑关系为 “一对多” 的数据
        树存储结构是什么
    普通树
        顺序存储
            双亲表示法
                树的双亲表示法(C语言实现)
        链式存储
            孩子表示法
                树的孩子表示法(C语言)详解
            孩子兄弟表示法
                树的孩子兄弟表示法详解
    二叉树
        每个结点最多有 2 个孩子,这样树称为二叉树
            什么是二叉树
        普通存储
            二叉树的顺序存储结构详解
        链式存储
            二叉树的链式存储结构(C语言详解)
        线索二叉树
            线索二叉树:遍历效率更高的二叉树
            双向线索二叉树:更高级的线索二叉树
        二叉树的遍历
            先序遍历
                二叉树的先序遍历算法(递归和非递归)
            中序遍历
                二叉树的中序遍历算法(递归和非递归)
            后序遍历
                二叉树的后序遍历算法(递归和非递归)
            层次遍历
                二叉树的层次遍历(C语言实现)
    哈夫曼树
        哈夫曼树(赫夫曼树、最优树)详解
        哈夫曼编码
            哈夫曼编码(C语言实现)
    和树相关的热门问题
        n个结点最多可以构建多少棵树?
        孩子兄弟表示法将森林转变成二叉树
        回溯算法
            回溯算法详解
            回溯算法解决八皇后问题(C语言实现)

图 ⑦

    专门存储逻辑关系为 “多对多” 的数据
        图存储结构,数据结构中的图
    图的基本知识
        连通图
            什么是连通图,(强)连通图详解
        生成树
            什么是生成树,生成树(生成森林)详解
        最小生成树
            最小生成树是什么
        重连通图
            什么是重连通图
        最短路径
            什么是最短路径
        关键路径
            AOE网求关键路径详解(C语言实现)
    图的存储
        顺序存储
            图的顺序存储结构(C语言实现)
        链式存储
            邻接表存储结构
                图的邻接表存储结构(C语言实现)
            十字链表存储结构
                图的十字链表存储结构(C语言实现)
            邻接多重表存储结构
                图的邻接多重表存储结构(C语言实现)
    图的遍历
        深度优先搜索算法(DFS)
            深度优先搜索(DFS)算法详解
        广度优先搜索算法(BFS)
            广度优先搜索(BFS)算法详解
    生成树(森林)
        深度优先生成树(森林)
            深度优先生成树和森林(C语言实现)
        广度优先生成树(森林)
            广度优先生成树和森林(C语言实现)
    找最小生成树
        普里姆算法(Prim算法)
            Prim算法(普里姆算法)精讲
        克鲁斯卡尔算法(Kruskal算法)
            Kruskal算法(克鲁斯卡尔算法)详解
    求最短路径
        迪杰斯特拉算法(Dijkstra算法)
            Dijkstra算法(迪杰斯特拉算法)详解
        弗洛伊德算法(Floyd算法)
            Floyd算法(弗洛伊德算法)详解
    图相关的算法
        拓扑排序算法
            拓扑排序算法(C语言实现)

查找表 ⑧

   专门存储逻辑关系为 “无关系” 的数据
        什么是查找表
    静态查找表
        只对查找表做查找和读取元素的操作,不改变查找表的存储结构
        顺序查找
            顺序查找算法(C语言实现)
        二分查找
            二分查找(折半查找)算法详解
        分块查找
            分块查找算法图解(C语言实现)
        静态树表查找
            静态树表查找算法详解(C语言实现)
    动态查找表
        对查找表做插入或者删除操作,查找表的结构发生了改变
         二叉排序树
            二叉排序树(二叉查找树)详解
        平衡二叉树(AVL树)
            平衡二叉树(AVL树)详解
        红黑树
            红黑树算法和应用(更高级的二叉查找树)
        B-树
            B-树及其基本操作(插入和删除)详解
        B+树
            B+树及插入和删除操作详解
        键树
            键树查找法(双链树和字典树)C语言实现
        哈希表
            哈希表(散列表)及哈希表处理冲突的方法

排序算法 ⑨

   插入排序算法
        普通插入排序算法
            插入排序算法及C语言实现
        折半插入排序算法
            折半插入排序算法(折半排序算法)
        2-路插入排序算法
            2-路插入排序算法
        表插入排序算法
            表插入排序算法
    希尔排序算法
        希尔排序算法(缩小增量排序)及C语言实现
    冒泡排序算法
        冒泡排序算法(起泡排序)及其C语言实现
    快速排序算法
        快速排序算法(QSort,快排)及C语言实现
    选择排序算法
        简单选择排序
        树形排序
        堆排序
    归并排序算法
        归并排序算法及其C语言具体实现
    基数排序算法
        基数排序及其C语言实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/554308
推荐阅读
相关标签
  

闽ICP备14008679号