随笔分类 - 算法与数据结构
摘要:In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, s
阅读全文
摘要:代码参考了以下两个链接: https://www.programiz.com/dsa/deletion-from-a-red-black-tree https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/
阅读全文
摘要:如果从先易后难的顺序介绍各种树,那么红黑树必然放在 AVL 树后面。但在红黑树之前,还有一种名为 2-3 树的平衡树(Balanced-Tree,B-树)。2-3 树理解起来比红黑树容易很多,并且在理解它的基础上增加一个变更,就成了红黑树(尽管不是通常使用的那种红黑树)。因此学习红黑树的时候,最好先
阅读全文
摘要:背景 之前在了解二叉树旋转的时候,为了方便查看中间状态,就写了个以树状形式打印二叉树的函数。 起初是使用二叉树中序遍历的结果展开的方式,简单但打印出来的树有一定的倾斜。 例如这棵树: 5 3 7 2 6 8 它的中序遍历结果为: +++++++++++++ |2|3|5|6|7|8| +++++++
阅读全文
摘要:上一篇【因为一句话,秒懂二叉树旋转】把树旋转了解清楚,是为这一篇平衡二叉树准备的。 平衡二叉树,就是在二叉树的基础上加上一个条件:对于任意节点,左子树和右子树的树高之差不超过 1。 从实现的角度看,就是在已具备旋转功能的 Node 上增加一个 height 字段,并且在原先的代码上增加对 heigh
阅读全文
摘要:事情要从某天晚上买夜宵说起。买了香肠拿着吃,想着多年来一直没搞懂的树旋转是不是应该看看,就点进某百科。 树旋转是在二叉树中的一种子树调整操作, 每一次旋转并不影响对该二叉树进行中序遍历的结果。 中序遍历!灵光一闪,好像很多东西都联系起来了! 为什么是中序遍历 中序遍历是指按【左节点->父节点->右节
阅读全文
摘要:问题描述 给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含。 样例输入 AABCD CDAA ABCD ACBD 样例输出 true false 代码 c include include bool search(char src, char des,
阅读全文
摘要:题目链接: "Longest Palindromic Substring" 1. 问题描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of
阅读全文