Coder

力扣周赛 子烁爱学习 dait

感悟

https://www.cnblogs.com/ysocean/tag/Java%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95/Java的

课程-电子工业出版社 数据结构 c++版 第三版

|
- 课程大纲
《数据结构》课程教学大纲_计算机专业.doc
关于数据结构课程设计和实验安排情况.doc |
- 实验
271-0809902681数据结构与算法实验教学大纲_24学时_2017版.doc
黄纬老师本学期上机安排表(2018-2019-2).xlsx
学号姓名数据结构实验报告 二叉树.doc
学号姓名数据结构实验报告 顺序表.doc

- 我写的
运动会.rar
学号姓名数据结构课程设计(2018-2019-2学期).doc
学号姓名二叉树基本操作与算法设计.doc
学号姓名栈和队列及其应用.doc |
- 课设
270-0809902680数据结构与算法课程设计教学大纲_2017版.doc学号姓名数据结构课程设计(2018-2019-2学期).doc《数据结构》课程设计2018-2019-2.doc | | —- | —- | —- | |
- 考试
南工程数据结构样卷09级(修改).pdf数据结构样卷答案.docx |
- 书籍附带
第01章 绪论(C++).ppt第02章 线性表(C++).ppt第03章 串(C++).ppt第04章 栈和队列(C++).ppt第05章 数组和广义表(C++).ppt第06章 树和二叉树(C++).ppt第07章 图(C++).ppt第08章 查找(C++).ppt第09章 排序(C++).ppt第10章 综合应用设计(C++).ppt
21985 数据结构(C++版)(第3版)-习题解答与实验指导.doc
[代码资源]数据结构(C++版)(第3版).zip
- 课件
数据结构课件.zip | |

数据结构DataStructure

  • 数据

所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。

  • 数据元素

数据(集合)中的一个“个体”,数据及结构中讨论的基本单位

  • 数据项

数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。

  • 结构

数据元素之间存在的关系

  • 关键字 主关键字

数据项中确定数据元素的数据项

逻辑结构

  • 集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。
  • 线性结构:数据结构中的元素存在一对一的相互关系。
  • 树形结构:数据结构中的元素存在一对多的相互关系。
  • 图形结构:数据结构中的元素存在多对多的相互关系。

    物理结构/存储结构

  • 顺序

  • 链式

算法Algorithm

上海大学 ACM 模板 by kuangbinACM模板.pdf
字节跳动.pdf

算法思想描述

  • 自然语言
  • 伪代码

    算法设计设计目标

  • 正确性

  • 健壮性
  • 高时间效率
  • 高空间效率
  • 可读性

    算法分析最好情况最坏情况平均

  • 时间复杂度

    • 相对时间规模 执行次数函数 T(n)算法需要执行的运算次数 用 输入大小n 的函数 表示,即 T(n) 。
  • 空间代价S()
  • 大O表示法
  • 稳定性
  • 参考

算法algorithm数据结构data structure - 图1
https://blog.csdn.net/qq_41523096/article/details/82142747
https://www.jianshu.com/p/f4cca5ce055a

思想

抽象数据类型ADTAbstractDataType

列表

  • 队列
    • 普通队列
    • 双端队列
    • 循环队列
    • 优先级队列
    • kmp算法
  • 数组
  • 广义表

    堆Heap二叉堆

  • 大根堆-最大堆

    最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。

  • 小根堆-最小堆

    最小堆任何一个父节点的值,都小于等于它左右孩子节点的值。

  • 堆顶

    二叉堆的根节点。

  • 数据结构

    • 逻辑:树形
    • 物理:顺序 链式
  • 操作
    • 入堆尾部入
    • 出堆头部出
  • 调整上浮 下沉
  • 构建二叉堆本质上就是让所有非叶子节点依次下沉。
  • 参考

https://www.cnblogs.com/JVxie/p/4859889.html

图Graph

术语

  • 顶点(vertex):最基本的单元是,相当于树中的节点。
  • 边(edge):顶点之间的关联关系
  • 权重(Weight):涉及到边的权重的图,被称为带权图(Weighted Graph)。
  • 方向(Directed):涉及到边的权重的图,被称为有向图(Directed Graph)(Undirected Graph)。
  • 环:即图中有没有回路

算法algorithm数据结构data structure - 图2

计算机表示

表示 顶点集合和边集

  • 邻接矩阵AdjacencyMatrix 稠密图

    优点:简单直观 缺点:空间太大

算法algorithm数据结构data structure - 图3算法algorithm数据结构data structure - 图4

  • 邻接表AdjacencyList 稀疏图

    节省空间

算法algorithm数据结构data structure - 图5

  • 逆邻接表
  • 十字链表

    遍历

https://www.cnblogs.com/hapjin/p/4760934.html
https://blog.csdn.net/xxniuren/article/details/52218211

哈希散列表HashTable

hash散列函数

  • 直接取值法
  • 除余法

    顾名思义,除余法就是用关键码x除以M(往往取散列表长度),并取余数作为散列地址。除余法几乎是最简单的散列方法,散列函数为: h(x) = x mod M。

  • 平方取中法

    取关键字平方后的中间几位作为散列地址。

  • 数字分析

    数字分析法是取数据元素关键字中某些取值较均匀的数字位作为哈希地址的方法。

  • 折叠法

    所谓折叠法是将关键字分割成位数相同的几部分(最后一部分的位数可以不同),然后取这几部分的叠加和(舍去进位),这方法称为折叠法。

  • 字符串

https://blog.csdn.net/Beyond_2016/article/details/81286360
https://www.cnblogs.com/gj-Acit/archive/2013/05/06/3062628.html

hash冲突

使用hash表时,不同输出通过hash函数得到了相同的输出

hashcode哈希码

输入经过hash算法得到的结果

树Tree

  • 节点

根节点叶子节点
父节点兄弟节点子节点

子节点数目

  • 高度 深度 层

树的 最大的
节点的

  • 参考

https://blog.csdn.net/qq_36667170/article/details/84142019

R类树

二叉搜索树=二叉排序树(BinarySortTree)=二叉查找树(BinarySearchTree)

平衡二叉树

且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

  • AVL树(没含义,名字得来的)

https://zhuanlan.zhihu.com/p/25239615
https://zhuanlan.zhihu.com/p/25320155
https://blog.csdn.net/ybt_c_index/article/details/80623974
https://www.cnblogs.com/qm-article/p/9349681.html

  • 红黑树

https://zhuanlan.zhihu.com/p/25358857
https://www.cnblogs.com/daoluanxiaozi/p/3340382.html
https://blog.csdn.net/qq_34173549/article/details/79636764