当年集训队老师告诉我们每道题做完都要把题解发布到 CSDN 上,记录自己的思路,解题方式和代码。这件事乍一听我觉得太麻烦,觉得“有这个时间我多刷道题它不香嘛”,一直当作耳旁风。 后来真正开始在 CSDN 上发题解,并不是我突然顿悟,而是集训队老师看我们太懒,强制执行,然而这个强制,在经过初期的不适以后,慢慢的...
实际AVL树是由BST二叉搜索树优化来的。满足左小右大性质。自顶向下。先序遍历+判断深度 class Solution { public boolean isBalanced(TreeNode root) { if (root == null) return true; return Math.abs(depth(root.left) - depth(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root....
二叉树(Binary tree)是树形结构的一个重要类型,是AVL树,红黑树,二叉堆,大顶堆,小顶堆,多叉树的基础。那么什么是二叉树?下面给出二叉树的递归定义: 二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。 以上图为例,其中...
cnblogs.com/skywang1234 树:二叉查找树、AVL树、伸展树、红黑树、哈弗曼树等 cnblogs.com/skywang1234 堆:二叉堆、左倾堆、二项堆: cnblogs.com/skywang1234 图:有向图、无向图 cnblogs.com/skywang1234 常见算法: 基于图的算法:深度优先DFS、广度优先BFS、拓扑排序、Kruskal算法、Prim算法、Dijkstra算法等 cnblogs...
树:二叉查找树、AVL树、伸展树、红黑树、哈弗曼树等 cnblogs.com/skywang1234 堆:二叉堆、左倾堆、二项堆: cnblogs.com/skywang1234 图:有向图、无向图 cnblogs.com/skywang1234 常见算法:基于图的算法:深度优先DFS、广度优先BFS、拓扑排序、Kruskal算法、Prim算法、Dijkstra算法等...
根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = 3,9,20,15,7 中序遍历 inorder = 9,3,15,20,7 返回如下的二叉树: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
最短路径算法:Dijkstra算法; 最小生成树算法:Prim算法; 事件驱动仿真:顾客排队算法; 选择问题:查找第k个最小元素; 等等等等... 优先队列的实现比较 堆和二叉堆 什么是堆 堆是一颗具有特定性质的二叉树,堆的基本要求就是堆中所有结点的值必须大于或等于(或小于或等于)其孩子结点的值,这也称为堆的性质;堆还有...
树:二叉查找树、AVL树、伸展树、红黑树、哈弗曼树等 cnblogs.com/skywang1234 堆:二叉堆、左倾堆、二项堆: cnblogs.com/skywang1234 图:有向图、无向图 cnblogs.com/skywang1234 常见算法: 基于图的算法:深度优先DFS、广度优先BFS、拓扑排序、Kruskal算法、Prim算法、Dijkstra算法等 cnblogs.com/skywang1234 八大排...
高级: 二级搜索树binary search tree(red-blace tree, AVL), 堆heap, 并查集disjoint set, 字典树Trie 特殊: 位运算 Bitwise, 布隆过滤器BloomFilter LRU Cache 注意, 在后面的学习中要了解每个数据结构的原理和代码框架, 这个网站会有三张思维导图, 等把训练营学完了, 也要亲自画一遍。https://blog.csdn...
trie -> 字典树(前缀树) union_find -> 并查集 avl -> AVL平衡树 red_black_tree -> 红黑树 hashtable -> 哈希表 基本算法相关 algorithms sort -> 排序 heap -> 堆排序 other -> 其他算法相关 thread -> 线程相关 leetcode ->Leetcode练习题...