随笔分类 -  数据结构

摘要:why ? what ? when ? how ? 为什么要用红黑树? 红黑树放弃了追求完全平衡,追求大致平衡,任何不平衡都会在3次旋转之内解决,平衡二叉树不行。 Red Black Tree 是一种自平衡的二叉查找树。需要满足下面 5 个性质: 1. 结点是红色或黑色 2. 根结点是黑色 3. 每 阅读全文
posted @ 2018-07-24 10:02 罗贱人 阅读(233) 评论(0) 推荐(0)
摘要:when ? why ? how ? what ? 平衡二叉树其查找的时间复杂度是 O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。 如果我们要操作的数据集非常大,大到内存已经没法处理了怎么办呢?如数据库中的上千万条记录的数据表、硬盘中的上万个文件等。在这种情况下,对数据的处理需 阅读全文
posted @ 2018-07-23 17:23 罗贱人 阅读(223) 评论(0) 推荐(0)
摘要:when ? why ? how ? what? how 怎么衡量一个排序算法好坏? 稳定性、时间复杂度、空间复杂度。 what 什么叫稳定性? 如有有两个数 A,B 它们的值相等且 A 在 B 之前,如果经过某个排序算法排序后 A,B 的相对位置没有改变(A 在 B 之前)说明这个排序算法是稳定的 阅读全文
posted @ 2018-07-18 22:18 罗贱人 阅读(227) 评论(0) 推荐(0)
摘要:when ? what ? why ? how ? why 为什么要用散列查找? what 什么是散列查找? 解决冲突有哪些方法? how 如何评估查找? 散列函数如何设计? 为什么要用散列查找? 顺序查找 时间复杂度 O(N) 二分查找(前提有序) 时间复杂度 O(logN) 二叉搜索树 时间复杂 阅读全文
posted @ 2018-07-14 15:24 罗贱人 阅读(1084) 评论(0) 推荐(0)
摘要:when ? how ? what ? why? what 什么是并查集? how 并查集问题中集合存储如何实现? 并查集的操作 什么是并查集? 集合的合并、查询某元素属于什么集合。 并查集问题中集合存储如何实现? 可以用树结构表示集合,树的每个结点代表一个集合元素 集合 S1={1,2,3,4}, 阅读全文
posted @ 2018-07-13 16:02 罗贱人 阅读(274) 评论(0) 推荐(0)
摘要:when? what? why? how? why 为什么会出现哈夫曼树? what 哈夫曼树有什么用? 什么是哈夫曼树? 哈夫曼树的特点是啥? how 如何创建哈夫曼树? 为什么会出现哈夫曼树? 效率 !!! 比如一所高中有1000个同学进行了一次考试(总分100),现在需要将每个成绩段转换为优、 阅读全文
posted @ 2018-07-12 20:54 罗贱人 阅读(1192) 评论(0) 推荐(0)
摘要:what ? why ? when ? how ? why 为什么要用堆? what 什么是堆? 堆有什么特点? how 如何操作堆(建立、插入、删除、查找)? when 什么是堆? 堆是特殊的“队列”,从堆中取出元素是按照元素优先级大小,而不是元素进入队列的先后顺序。 堆是一颗完全二叉树,其结点的 阅读全文
posted @ 2018-07-11 13:14 罗贱人 阅读(205) 评论(0) 推荐(0)
摘要:why? what? when? how? 最近几天看了某个大佬写的学习总结,觉得这个方式不错就引进了。 why 为什么要用平衡二叉树? 二叉搜索树 二叉搜索树的查找效率和 BST 建立的时候节点输入顺序相关。 1. 若输入节点顺序 1、2、3、4、5 树的深度为 5,查找效率 O(N),平均查找长 阅读全文
posted @ 2018-07-06 13:33 罗贱人 阅读(1054) 评论(0) 推荐(0)
摘要:欠的账总是要还的嘻嘻 定义 1. 非空左子树的所有键值小于其根结点的键值 2. 非空右子树的所有键值大于其根结点的键值 3. 左、右子树都是二叉搜索树 特点 1. 最小值在二叉搜索树的最左边 2. 最大值在二叉搜索树的最右边 结点定义 class BinaryTreeNode { int val; 阅读全文
posted @ 2018-06-29 17:49 罗贱人 阅读(175) 评论(0) 推荐(0)
摘要:基础慢慢补回来 "二叉树遍历" 递归 递归就不仔细介绍了:比左右的子树取最大值。 public int calculateHeight(BinaryTreeNode node) { if (node == null) { return 0; } int left = calculateHeight( 阅读全文
posted @ 2018-06-22 15:24 罗贱人 阅读(156) 评论(0) 推荐(0)
摘要:以前没有好好学数据结构现在需要补回来欠的账还是要还的。 不知道大家喜不喜欢看权利的游戏个人还是十分推荐看!十分好看!!! 看上图这么多人物如果你想要找某个人是不是很奔溃!!! 假如这个人自身含有一些信息。 假如你找的人是 “小恶魔” 提利昂·兰尼斯特(个人非常喜欢他) 兰尼斯特家族,父亲是泰温兰尼斯 阅读全文
posted @ 2018-06-05 11:39 罗贱人 阅读(246) 评论(0) 推荐(0)
摘要:前序遍历:{b,c,e,f,d,a} 中序遍历:{e,c,f,b,a,d} 后续遍历:{e,f,c,a,d,b} 宽度优先遍历(按层遍历):{b,c,d,e,f,a} 二叉树的建立 上图是按层遍历的结果: 根节点是b,它的左孩子是c,右孩子是d c节点的左孩子是e,右孩子是f d节点的左孩子是a 规 阅读全文
posted @ 2018-06-05 11:37 罗贱人 阅读(158) 评论(0) 推荐(0)
摘要:线性表、广义表、多重链表 开始实习了,发现每天自我学习的时间好少好少,可能是自己懒吧,其实感觉有很多空闲时间自己可以学习只是自己没有好好把握,以前学数据结构没有好好学,现在补上吧!哈哈还是那句话欠的帐还是要还的。 什么叫线性表?什么叫广义表?什么叫多重链表? 呃.... 线性表 借用MOOC上ZJU 阅读全文
posted @ 2018-05-12 11:20 罗贱人 阅读(3209) 评论(0) 推荐(0)