![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 73
simplesin
坚持
展开
-
数据结构试题 16-17
那就先over啦数据结构撒花!!!!!!!!!等我7.4开电子技术基础!!!原创 2024-06-17 17:46:48 · 576 阅读 · 0 评论 -
数据结构试题 20-21
LinkNode *maxp=p:maxp初始化为第一个数据节点,用于记录当前最大值所在的节点。LinkNode *maxpre=pre:maxpre初始化为头节点,用于记录最大值节点的前驱。LinkNode *p=L->next:p指向链表的第一个数据节点。LinkNode *pre=L:pre指向头节点,用于记录p的前驱。这行代码的作用是为新的链表节点分配内存,并将分配到的内存地址赋给指针。就可以作为新节点的地址,通过它我们可以访问和操作这个新节点。原创 2024-06-14 13:37:47 · 327 阅读 · 0 评论 -
数据结构笔记1-19(补充之前没有提及的细节)
累的很。。。笔记撒花咯。。。原创 2024-06-13 14:02:39 · 255 阅读 · 0 评论 -
数据结构笔记20-37
目录 图的定义和术语邻接矩阵邻接表画法十字链表画法 邻接多重表画法图的广度优先遍历图的深度优先遍历最小生成树-Prim算法最小生成树-Kruskal算法 最短路径-Dijkstra算法最短路径-Floyd算法 拓扑排序和逆拓扑排序AOE网中的关键路径 略折半查找法的平均查找长度 分块查找及平均查找长度平衡二叉树的调整 红黑树的概念 B树 略散列表处理冲突方法 以黑色对角线为分割,右上和左下是以黑线对称的1.以行来写 2.看元素的出度有多少,看行(红色)看元素的入度有多少,看列(黑色)和 有向图的邻接矩阵特点原创 2024-06-13 13:57:49 · 596 阅读 · 0 评论 -
数据结构笔记39-48
目录 排序算法直接插入排序折半插入排序希尔排序 快速排序简单选择排序 堆排序插入元素:删除元素:归并排序基数排序原创 2024-06-12 18:31:45 · 1380 阅读 · 0 评论 -
数据结构笔记 线性表的查找 顺序,折半,分块查找
折半查找:向下取整:指当计算的结果不为整数时取小于计算结果的整数。其中,辅助空间的O(1)用于存放哨兵的。顺序查找:从头找到尾,或者从尾找到头。原创 2024-06-10 13:13:30 · 458 阅读 · 0 评论 -
数据结构笔记 4 树和二叉树
除了最后一个层级外,所有层级都被完全填满。最后一层的节点都尽可能地集中在左侧。原创 2024-06-09 16:04:17 · 222 阅读 · 0 评论 -
数据结构笔记 3 串 数组 广义表
数据结构笔记 3 串 数组 广义表原创 2024-06-09 14:54:33 · 292 阅读 · 0 评论 -
数据结构笔记2 栈和队列
数据结构笔记2 栈和队列原创 2024-06-08 10:59:40 · 886 阅读 · 0 评论 -
数据结构笔记1 绪论,线性表
绪论,线性表原创 2024-06-07 21:35:45 · 945 阅读 · 0 评论 -
12.31_黑马数据结构与算法笔记Java
目录345 设计跳表 Leetcode 1206346 设计最小栈 Leetcode 155347 设计端网址 Leetcode 355348 设计推特 Leetcode 355349 股票系列问题 Leetcode 121350 股票系列问题 Leetcode 122351 股票系列问题 Leetcode 714352 股票系列问题 Leetcode 309353 股票系列问题 Leetcode 123354 股票系列问题 Leetcode 188原创 2023-12-31 20:15:55 · 738 阅读 · 0 评论 -
12.31_黑马数据结构与算法笔记Java
目录331 两数之和 Leetcode167332 三数之和 Leetcode15333 四数之和 Leetcode18334 盛水最多容器 Leetcode11335 滑动窗口最大值 Leetcode239336 接雨水 Leetcode42337 字符串匹配 bf Leetcode28338 字符串匹配 kmp Leetcode28339 字符串匹配 lps Leetcode28340 最长公共前缀 Leetcode14341 最长回文子串 Leetcode5342 最小覆盖子串 Leetcode763原创 2023-12-31 17:18:18 · 1150 阅读 · 0 评论 -
12.30_黑马数据结构与算法笔记Java
目录320 全排列无重复 Leetcode47321 组合 Leetcode77 分析322 组合 Leetcode77 实现323 组合 Leetcode77 剪枝324 组合之和 Leetcode 39325 组合之和 Leetcode 40326 组合之和 Leetcode 216327 N皇后 Leetcode51-1328 N皇后 Leetcode51-2329 解数独 Leetcode37-1330 解数独 Leetcode37-2排序,并且消去重复的部分最后那句话的意思就是说,我现在想固定1‘原创 2023-12-30 20:21:26 · 499 阅读 · 0 评论 -
12.29_黑马数据结构与算法笔记Java
目录305 旅行商问题 动态规划 实现2306 旅行商问题 动态规划 实现3307 分治 概述308 快速选择算法 分治309 快速选择算法 数组第k大数 Leetcode215310 快速选择算法 数组中位数311 快速幂 分治312 快速幂 Leetcode50313 平方根整数部分 Leetcode69-1314 平方根整数部分 Leetcode69-2315 至少k个重复字符的最长子串 Leetcode395 分析316 至少k个重复字符的最长子串 Leetcode395 实现317 回溯 概况31原创 2023-12-29 14:51:39 · 415 阅读 · 0 评论 -
12.28_黑马数据结构与算法笔记Java
目录291 最长公共子序列 动态规划 分析292 最长公共子序列 动态规划 实现293 Leetcode 583 两个字符串删除294 Leetcode 300 最长递增子序列 分析295 Leetcode 300 最长递增子序列 实现296 Catalan数 分析297 Catalan数 实现298 Catalan数 应用 出栈总数299 Catalan数 Leetcode22 括号生成 1300 Catalan数 Leetcode22 括号生成 2301 打家劫舍 Leetcode 198302 旅行商原创 2023-12-29 10:18:15 · 408 阅读 · 0 评论 -
12.27_黑马数据结构与算法笔记Java(补2)
目录279 0-1 背包问题 动态规划 实现280 0-1 背包问题 动态规划 降维281 完全背包问题 动态规划 分析282 完全背包问题 动态规划 实现283 零钱兑换问题 动态规划 分析284 零钱兑换问题 动态规划 实现285 零钱兑换问题 动态规划 降维286 零钱兑换II 动态规划 分析287 零钱兑换II 动态规划 实现288 钢条切割 动态规划 分析289 钢条切割 动态规划 实现290 最长公共子串 动态规划如果面值是10的话,根本拆不开,就返回-1 .意思就是我要凑1块,2块,3块,4块原创 2023-12-28 14:49:32 · 444 阅读 · 0 评论 -
12.27_黑马数据结构与算法笔记Java(补1)
目录266 活动选择问题 分析267 活动选择问题 贪心268 分数背包问题 贪心269 0-1 背包问题 贪心270 斐波那契 动态规划271 斐波那契 动态规划 降维272 Bellman Ford 动态规划 分析273 Bellman Ford 动态规划 实现1274 Bellman Ford 动态规划 实现2275 Leetcode62 不同路径 动态规划 分析276 Leetcode62 不同路径 动态规划 实现277 0-1 背包问题 动态规划 分析1278 0-1 背包问题 动态规划 分析2以原创 2023-12-27 17:12:40 · 487 阅读 · 0 评论 -
12.27_黑马数据结构与算法笔记Java
目录254 零钱兑换II 递归 递归分析255 零钱兑换II 递归 所有组合256 零钱兑换II 递归 顺序优化257 零钱兑换II 递归 258 零钱兑换 贪心 1259 零钱兑换 贪心 2260 Huffman Tree261 Huffman Tree 分析262 Huffman Tree 统计频次263 Huffman Tree 构建树264 Huffman Tree 记录编码265 Huffman Tree 编解码可以进行优化,将重复代码抽取出来倘若代码量大,那重复调用的代码就会很多,因此,需要进行原创 2023-12-27 13:38:56 · 520 阅读 · 0 评论 -
12.26_黑马数据结构与算法笔记Java
目录243 图 Floyd Warshall 算法实现2244 图 Floyd Warshall 算法实现3245 图 Floyd Warshall 算法实现4246 图 最小生成树 Prim247 图 最小生成树 Kruskal248 图 并查集 1249 图 并查集 2250 图 并查集 路径压缩251 图 并查集 UnionBySize252 贪心算法 介绍253 零钱兑换II 递归 实现增加prev值。 举个例子去理解这个输出结果。比如第一行,v1到v1自己是null,v1到v2是null,因为不连原创 2023-12-26 21:05:43 · 932 阅读 · 0 评论 -
12.23_黑马数据结构与算法笔记Java
目录230 图 DFS231 图 BFS232 图 拓扑排序233 图 拓扑排序 检测环234 图 拓扑排序 DFS235 图 Dijkstra 算法描述236 图 Dijkstra 算法实现237 图 Dijkstra 改进 记录路径238 图 Dijkstra 改进 优先队列239 图 Bellman Ford 算法描述240 图 Bellman Ford 算法实现241 图 Floyed Warshall 算法描述242 图 Floyed Warshall 算法实现1先遍历最近的,再慢慢遍历出去。原创 2023-12-24 20:49:02 · 770 阅读 · 0 评论 -
12.21_黑马数据结构与算法笔记Java
//最近在复习,,java的进度会比较慢一些目录219 排序算法 基数排序2220 排序算法 java排序221 排序 e01 根据另一个数组次序排序222 排序 e02 根据出现频率排序223 排序 e03 最大间距 解法1(超出内存限制)224 排序 e03 最大间距 解法2225 排序 e03 最大间距 解法3226 排序 e03 最大间距 解法4227 图 基本概念228 图 表示方式229 图 java表示230 图 DFS不可以先排百位再排个位的原因是因为,越到后面,优先级越高,最后排个位的话,原创 2023-12-21 20:53:44 · 848 阅读 · 0 评论 -
12.19_黑马数据结构与算法笔记Java
这是非递归版本 比较理想的状态。折中的方法,更改的两处以下。原创 2023-12-19 20:52:56 · 757 阅读 · 0 评论 -
12.18_黑马数据结构与算法笔记Java
1个哈希值可以代表1个对象哈希值就是随机数不用自己去操心hash码了值相同的,hash码就是一样的。原创 2023-12-18 17:43:09 · 1108 阅读 · 0 评论 -
12.16_黑马数据结构与算法笔记Java
目录167 B树 remove 168 B树 remove 搭架子169 B树 remove case1-4170 B树 remove case5-6分析171 B树 remove case5 旋转172 B树 remove case5 合并173 B树 remove case6174 B树 remove 演示1175 B树 remove 演示2176 哈希表 概述177 哈希表 hash码映射索引178 哈希表 get put179 哈希表 remove180 哈希表 resize1181 哈希表 res原创 2023-12-17 15:48:08 · 1003 阅读 · 0 评论 -
12.15_黑马数据结构与算法笔记Java
我们什么时候考虑null值,就是发现,有左孩子却没有右孩子的时候,要把另外一个兄弟也加进来。小妙招:如果叶子节点,就是最下面的这个点如果是黑色的,一定要成对出现,如果是红色的,那一定是对的。parent.isLeftChild:父亲是不是爷爷的左孩子。原创 2023-12-15 20:52:05 · 541 阅读 · 0 评论 -
12.14_黑马数据结构与算法笔记Java
137还有递归要补充。导致失衡的原因:删除,添加。对于LL和RR只要做一次旋转:LL:失衡点向右旋转一次RR:失衡点向左旋转一次对于LR和RL要做两次旋转:LR:先让失衡点的右孩子左旋转,再让失衡点右旋转RL:先让失衡点的左孩子右旋转,再让失衡点左旋转解释一下为什么是在boolean a 下面添加if判断:因为isValidBST (node.left )传进去的是6的left,也就是传进去的3,因此,a的真假是说明3是否符合条件。那既然3不符合的话,直接返回false就好了,就没有必要还去比较原创 2023-12-14 21:12:59 · 1087 阅读 · 0 评论 -
12.13_黑马数据结构与算法笔记Java
如何记忆:前中后,则记忆中间的部分,前对应中间访问的是左,中对应中间访问的是中,后对应中间访问的是右。其余的就按照左中右进行补充。理解:前序遍历,从左向右走,去的时候遇到啥遍历啥中序遍历:从左向右走,去的时候不要,回来的时候,遇到啥遍历啥后序遍历:从左向右,去的时候不要,回来的时候,真正结束了,才遍历,比如像这个1,我确实后来经过了它,但是其实我们的缘分还未尽。缘分尽了,才遍历。如果函数最后一步是调用自己,那就是伪递归,尽可能将这个形式转化为非递归形式。非递归,以下。原创 2023-12-13 21:22:03 · 1148 阅读 · 0 评论 -
12.12_黑马数据结构与算法笔记Java
写了好久.p是红色那个箭头,它通过什么进行移动的呢? 怎么知道下一步应该移动到哪里呢?就是通过p.next知道的。next就是紫色箭头。 我通过这个紫色的箭头,从而得知p下一步应该移动到哪里。好的,看看我们的题目。同理,我这个t就是刚刚上面那个p的效果,这个t可以通过哨兵节点知道第一个要指向的是什么。因此得出结论:打印数组,是因为输出语句那里调用了toString方法,以及重写了toString方法。遍历得到是头指针,是因为foreach中,会调用其迭代器的next()方法来获取元素。原创 2023-12-12 21:23:45 · 1933 阅读 · 0 评论 -
12.11_黑马数据结构与算法笔记Java
目录070 栈 链表实现概念理清:什么时候是指针的指向,什么时候是元素本身?071 栈 数组实现072 栈 e01 有效的括号072 栈 e02 后缀表达式求值072 栈 e03 中缀表达式转后缀1072 栈 e03 中缀表达式转后缀2072 栈 e03 中缀表达式转后缀3072 栈 e04 双栈模拟队列thinking:迭代器?thinking:接口规范?072 栈 e05 单队列模拟栈073 双端队列 链表实现 1074 双端队列 链表实现 2075 双端队列 数组实现 1076 双端队列 数组实现 2原创 2023-12-11 15:17:31 · 1356 阅读 · 0 评论 -
12.10_黑马数据结构与算法笔记Java
解析Java空指针异常:原因、避免和处理-CSDN博客因此,这里要加上h.next!= null ,因为如果h.next 是null,那h.next.next 就相当于对null执行操作,就会出现空指针异常。原创 2023-12-10 20:29:57 · 1309 阅读 · 0 评论 -
12.9_黑马数据结构与算法笔记Java
null要写在前面,因为如果这个条件不成立的话,就不会执行第二个条件了,它的执行是有顺序的。o1 = o2 : o1就要回到旧链表中,那它要回到哪里去呢?它要回到的位置就是o2帮他记录的位置。优化:要不是原来的方案:旧的p2指向的下一位;或者新的方案:删除后,p1指向的下一位。n1 = o1: n1做了o1该做的事情,或者说o1的责任赋予给n1了。原创 2023-12-09 20:09:27 · 1138 阅读 · 1 评论 -
12.8_黑马数据结构与算法笔记Java
目录044 递归 e04 冒泡排序2044 递归 e05 插入排序1044 递归 e05 插入排序2045 多路递归 斐波那契046 多路递归 斐波那契 时间复杂度047 多路递归 斐波那契 兔子问题048 多路递归 斐波那契 青蛙跳台阶049 递归 优化 记忆法050 递归 爆栈问题051 递归 尾调用与尾递归052 递归 尾递归避免爆栈053 递归 主定理求时间复杂度 1054 递归 主定理求时间复杂度 2055 递归 展开求时间复杂度 1056 递归 展开求时间复杂度 2057 多路递归 e02 汉诺原创 2023-12-08 13:59:20 · 1308 阅读 · 0 评论 -
12.7_黑马数据结构与算法Java
030 单向链表 getthinking:String.format()?031 单向链表 insert032 单向链表 removeFirst033 单向链表 remove034 单向链表 带哨兵1035 单向链表 带哨兵2036 双向链表 带哨兵1037 双向链表 带哨兵2038 双向环形链表 带哨兵1039 双向环形链表 带哨兵2041 递归 定义042 递归 阶乘043 递归 反向打印字符串044 递归 e03 二分查找044 递归 e04 冒泡排序1thinking:charAt?thinki原创 2023-12-07 16:32:18 · 594 阅读 · 0 评论 -
12.6_黑马数据结构与算法Java
第一种方法第二种方法第三种方法。原创 2023-12-06 16:30:04 · 1117 阅读 · 0 评论 -
12.5_黑马数据结构与算法Java
涉及到的知识点:反码补码原码,二进制转十进制,无符号右移,system.arraycopy.原创 2023-12-05 19:10:07 · 1163 阅读 · 0 评论