Coder
力扣周赛 | 子烁爱学习 | dait |
---|---|---|
感悟
- 程序解决问题
-
参考
蓝桥杯
- http://47.98.159.95/leetcode-js/
- 力扣牛客LintCode,hihoCoder,LeetCode-codejam
- 可视化
- 参考
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表示法
- 稳定性
- 参考
https://blog.csdn.net/qq_41523096/article/details/82142747
https://www.jianshu.com/p/f4cca5ce055a
思想
- 遍历穷举
- 递归https://www.zhihu.com/question/31412436
- 迭代
- 回溯法
- 滑动窗口
- 动态规划dynamic programming
- 分治法
- 贪心法贪心策略
抽象数据类型ADTAbstractDataType
列表
- 栈
- 队列
- 普通队列
- 双端队列
- 循环队列
- 优先级队列
- 串
- kmp算法
- 数组
-
堆Heap二叉堆
大根堆-最大堆
最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。
小根堆-最小堆
最小堆任何一个父节点的值,都小于等于它左右孩子节点的值。
堆顶
二叉堆的根节点。
数据结构
- 逻辑:树形
- 物理:顺序 链式
- 操作
- 入堆尾部入
- 出堆头部出
- 调整上浮 下沉
- 构建二叉堆本质上就是让所有非叶子节点依次下沉。
- 参考
https://www.cnblogs.com/JVxie/p/4859889.html
图Graph
术语
- 顶点(vertex):最基本的单元是,相当于树中的节点。
- 边(edge):顶点之间的关联关系
- 权重(Weight):涉及到边的权重的图,被称为带权图(Weighted Graph)。
- 方向(Directed):涉及到边的权重的图,被称为有向图(Directed Graph)(Undirected Graph)。
- 环:即图中有没有回路
计算机表示
表示 顶点集合和边集
- 邻接矩阵AdjacencyMatrix 稠密图
优点:简单直观 缺点:空间太大
- 邻接表AdjacencyList 稀疏图
节省空间
深度优先DFS(Depth First Search)
像这样先深入探索,走到头再回退寻找其他出路的遍历方式,就叫做深度优先遍历(DFS)。
广度优先BFS(Breadth First Search)
像这样一层一层由内而外的遍历方式,就叫做广度优先遍历(BFS)。
-
最短路径问题
距离距离表
- 路径前置顶点表
-
其它
拓扑排序https://blog.csdn.net/qq_35644234/article/details/60578189
- 关键路径
-
参考
代码实现
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冲突
hashcode哈希码
输入经过hash算法得到的结果
树Tree
- 节点
根节点叶子节点
父节点兄弟节点子节点
- 度
子节点数目
- 高度 深度 层
树的 最大的
节点的
- 参考
https://blog.csdn.net/qq_36667170/article/details/84142019
R类树
来历:RectangleTree
解决地图问题
参考https://blog.csdn.net/zyzzxycj/article/details/80325319
二叉树
二叉树遍历方法前中后 序根
- 完全二叉树度为1的节点只有0个或1个
- 满二叉树每一层都是满的
- 线索二叉树节点存储了线索
- https://www.cnblogs.com/rainple/p/9970760.html
- https://www.cnblogs.com/ysocean/p/8032642.html#_label6_2
二叉搜索树=二叉排序树(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
- 自平衡操作左旋 右旋 变色
- https://www.jianshu.com/p/e136ec79235c
- https://baijiahao.baidu.com/s?id=1636557496125304849&wfr=spider&for=pc
B树BalanceTreeBTree-B+树-B*树-多路搜索树
- 用途
- 减少磁盘I/O数据库索引存储在磁盘
- 特性
- B-Tree,一个 m 阶(Degree度)的B树满足以下条件:
- 节点子节点
- 每个结点至多拥有m棵子树;
- 根结点至少拥有两颗子树(存在子树的情况下);
- 分支结点至少拥有 m/2 (向上取整)棵子树;
- 叶结点都在同一层上;
- 节点关键字
- 根节点关键字数量 需要满足 1 <= n <= m-1;
- 分支节点关键字数量 需要满足 ceil(m/2)-1 <= n <= m-1;
- 节点关键字子树关系
- 有 k 棵子树的分支结点则存在 k-1 个关键码,关键码按照递增次序进行排列;
- 参考
- 说得好https://blog.ouyangsihai.cn/mian-shi-guan-wen-ni-b-shu-he-b-shu-jiu-ba-zhe-pian-wen-zhang-diu-gei-ta.html
- https://www.jianshu.com/p/71700a464e97
- https://blog.csdn.net/jimo_lonely/article/details/82716142
- https://www.jianshu.com/p/92d15df75027
- https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190965&idx=1&sn=53f78fa037386f85531832cd5322d2a0&chksm=8c9909efbbee80f90512f0c36356c31cc74c388c46388dc2317d43c8f8597298f233ca9c29e9&scene=21#wechat_redirect
- https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191027&idx=1&sn=4ba22e3ec8bd149f69fc0aba72e4347e&chksm=8c9909a9bbee80bfa1d8497ff0525df130414c1731b5aa5287bf16ea1cf86c8d8e6f20782184&scene=21#wechat_redirect
- https://blog.csdn.net/v_JULY_v/article/details/6530142/
- java实现