- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 《玩转数据结构 从入门到进阶》红黑树
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程本教程是基于二分搜索树实现红黑树,请先看《玩转数据结构 从入门到进阶》二分搜索树 Binary Search Tree红黑树也有左旋转、右旋转这种操作,如果不了解,请先阅读《玩转数据结构 从入门到进阶》平衡二叉树AVL由于红黑树的定义太过于复杂,所以先学习2-3树,然后通过红黑树与2-3树对比,才能更好的理解...
2019-08-24 18:53:08 336
原创 《玩转数据结构 从入门到进阶》平衡二叉树AVL
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程平衡二叉树的定义:对于任意一个节点,左子树和右子树的高度差不能超过1。使用代码实现AVL需要用到我之前的一篇《玩转数据结构 从入门到进阶》二分搜索树 Binary Search Tree 中的代码,建议先看这篇文章。先在二分搜索树的代码上加上计算平衡因子的代码package com.datastru...
2019-08-22 20:37:07 243
原创 《玩转数据结构 从入门到进阶》Tire字典树
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程上图是一个Trie字典树1、字典树是一个多叉树2、字典树的Node节点使用字典结构(java中叫map)储存与子节点的关系。3、沿着根节点的路径搜索,可以发现字典树中存储着单词{"cat", "dog", "deer", "panada"}这些单词。并且插入、查询一个字符串的效率只跟字符串的长度有关。当...
2019-08-15 20:22:18 244 1
原创 《玩转数据结构 从入门到进阶》二叉堆
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程先介绍几个概念1、满二叉树如下图:2、完全二叉树3、二叉堆使用数组实现一个最大二叉堆。上图中的树只是数组存储元素的形象画法,实际存储数据的还是数组,但数组元素之间具备树那样的关系。假设当前节点下标为i(i也是数组的下标),最大堆的下标存在这样的关系:父亲节点下标与当前节点下...
2019-08-08 22:41:54 259
原创 《玩转数据结构 从入门到进阶》二分搜索树 Binary Search Tree
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程上图是一个Binary Search Tree,因汉字数量庞大,就有了很多种翻译,如:二分搜索树、二叉搜索树、……………二分搜索树以二叉树为基础,但多了两个特点:1、二分搜索树节点的值具有可比较性。2、每个节点都比它左子树的任意元素大,而且比右子树的任意元素小(此文不讨论有重复元素的树)。下面使用jav...
2019-08-06 22:53:38 298
原创 《玩转数据结构 从入门到进阶》 链表实现队列
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程链表结构如下图,链表节点包含一个e属性和next属性使用java代码实现链表节点// 链表节点private class Node{ // 当前节点的值 public E e; // 当前节点的next属性指向下一个节点 public Node next; publ...
2019-08-02 21:55:08 164
原创 《玩转数据结构 从入门到进阶》 循环数组实现队列
本文来源于liuyubobobo的“玩转数据结构 从入门到进阶”视频教程队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。假设我们使用数组实现队列,请看下图入队操作很快速,只需要在队尾添加元素即可。但是,出队操作就耗时了,把队头元素删除并返回给调用者后,还需要把数组中的所有元素往前移动,...
2019-08-02 21:54:45 285
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人