数据结构
文章平均质量分 79
冷环渊
这里是四年学习Java的小冷,
腾讯云技术笔者
阿里云专家博主
阿里云程序员2022 1024高并发技术征文top1
亚马逊云优质技术征文作者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
六道入门树题目带你走入树结构的世界
📣 📣 📣 📢📢📢 ☀️☀️你好啊!小伙伴,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,擅长使用Java技术开发web项目和工具 📒 文章内容丰富:覆盖大部分java必学技术栈,前端,计算机基础,容器等方面的文章 📒 如果你也对Java感兴趣,关注小冷吧,一起探索Java技术的生态与进步,一起讨论Java技术的使用与学习 ✏️高质量技术专栏专栏链接: 微服务,数据结构,netty,单点登录,SSM ,SpringCloudAli.原创 2022-04-05 01:32:23 · 1413 阅读 · 3 评论 -
【数据结构】图结构与图的深度广度搜索
📣 📣 📣 📢📢📢 ☀️☀️你好啊!小伙伴,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,擅长使用Java技术开发web项目和工具 📒 文章内容丰富:覆盖大部分java必学技术栈,前端,计算机基础,容器等方面的文章 📒 如果你也对Java感兴趣,关注小冷吧,一起探索Java技术的生态与进步,一起讨论Java技术的使用与学习 ✏️高质量技术专栏专栏链接: 微服务,数据结构,netty,单点登录,SSM ,SpringCloudAli.原创 2022-04-02 15:49:53 · 1338 阅读 · 1 评论 -
【数据结构】多叉树的常见形式
多叉树的多种形态,和不同的的应用部分原创 2022-04-02 15:39:29 · 2501 阅读 · 6 评论 -
【数据结构】优秀树结构之一 平衡二叉树(AVL树)
📣 📣 📣 📢📢📢 ☀️☀️你好啊!小伙伴,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,擅长使用Java技术开发web项目和工具 📒 文章内容丰富:覆盖大部分java必学技术栈,前端,计算机基础,容器等方面的文章 📒 如果你也对Java感兴趣,关注小冷吧,一起探索Java技术的生态与进步,一起讨论Java技术的使用与学习 ✏️高质量技术专栏专栏链接: 微服务,数据结构,netty,单点登录,SSM ,SpringCloudAli.原创 2022-03-27 20:53:18 · 425 阅读 · 3 评论 -
二叉排序树(BST)优秀树结构的基石
📣 📣 📣 📢📢📢 ☀️☀️你好啊!小伙伴,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,擅长使用Java技术开发web项目和工具 📒 文章内容丰富:覆盖大部分java必学技术栈,前端,计算机基础,容器等方面的文章 📒 如果你也对Java感兴趣,关注小冷吧,一起探索Java技术的生态与进步,一起讨论Java技术的使用与学习 ✏️高质量技术专栏专栏链接: 微服务,数据结构,netty,单点登录,SSM ,SpringCloudAli.原创 2022-03-23 01:59:42 · 767 阅读 · 14 评论 -
【数据结构】认识赫夫曼树与赫夫曼编码 上手实现压缩文件和解压
📣 📣 📣 📢📢📢 ☀️☀️你好啊!小伙伴,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,擅长使用Java技术开发web项目和工具 📒 文章内容丰富:覆盖大部分java必学技术栈,前端,计算机基础,容器等方面的文章 📒 如果你也对Java感兴趣,关注小冷吧,一起探索Java技术的生态与进步,一起讨论Java技术的使用与学习 ✏️高质量技术专栏专栏链接: 微服务,数据结构,netty,单点登录,SSM ,SpringCloudAli.原创 2022-03-18 16:02:17 · 1359 阅读 · 4 评论 -
【排序算法】二叉树的实际应用堆排序
经典排序算法 堆排序 图解 示例代码 实例题原创 2022-03-16 16:33:55 · 500 阅读 · 20 评论 -
【数据结构】了解线段树与操作线段树的基本方法
认识线段树,了解线段树特性,复杂度,操作的方法,代码实现原创 2022-03-08 12:06:10 · 761 阅读 · 10 评论 -
hashmap底层1.8有红黑树,什么是红黑树?一文了解
红黑树 是一种特殊的平衡二叉树 满足如下几个条件: 1、结点是红色或黑色的 2、根结点始终是黑色的 3、叶子结点也都是黑色的 (当红色结点无左右孩子时,补足空结点是黑色的) 4、红色结点的子结点都是黑色的 5、对任一结点,到叶子结点的所有路径,都包含相同数目的黑色结点 特征: 从根结点到叶子结点的最长路径,不会超过最短路径的两倍 当插入新结点使红黑树失去平衡时,通过两种方式恢复平衡: 旋转和变色 (红变黑 黑变红) 可视化网站:树结构可视化 插入结点到红黑树的逻辑 约定 新插入的结点都设为红色的,可原创 2022-03-03 14:44:32 · 1002 阅读 · 10 评论 -
边看边思考十五分钟拿下线索存储二叉树
线索化二叉树 通过一个问题来引入线索化二叉树 将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树. n+1=7 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wYjNbBOG-1646016788596)(C:/Users/doomwstcher.000/AppData/Roaming/Typora/typora-user-images/image-20220225023647991.png)] 问题分析: 当我们对上面的二叉树进行中序遍历时,数原创 2022-02-28 15:23:20 · 507 阅读 · 7 评论 -
【数据结构】顺序查找树节点计算思路与遍历详解
作为堆排序的前置知识点,顺序查找树是如何将内容以数组的形式存储,以树的方式使用到呢 ?原创 2022-02-22 23:24:11 · 788 阅读 · 0 评论 -
【数据结构】对比数组链表我发现二叉树的好
二叉树对比其他结构的优点,二叉树的常规操作,二叉树是怎么提升性能的?原创 2022-02-22 22:59:24 · 1232 阅读 · 3 评论 -
【每日一题】leetcode hard难度:二叉树最大路径和
leetcode :124 二叉树最大路径和 hard 难度 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1: 输入:root = [1,2,3] 输出:6 解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6 示例 2: 输入:roo原创 2022-02-09 20:27:46 · 445 阅读 · 3 评论 -
数据结构: 散列表实现思路和实例
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 目录前言哈希表哈希表的基本介绍google 上机题思路分析并画出示意图思路实现效果演示新增与遍历查找 哈希表 哈希表的基本介绍 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通 过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映原创 2022-02-08 01:27:24 · 2154 阅读 · 4 评论 -
【排序算法】经典空间换时间基数排序
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 目录前言基数排序基数排序(桶排序)介绍基数排序基本思想动图演示代码思路实验速度测试基数排序的说明: 基数排序 经典空间换时间的思想流排序算法 基数排序(桶排序)介绍 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin so原创 2022-02-02 18:44:25 · 647 阅读 · 1 评论 -
【排序算法】分治思想归并排序
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 目录前言归并排序基本思想:拆分子序列合并相邻有序子序列动态图思路实现速度测试 归并排序 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶原创 2022-02-02 18:26:41 · 329 阅读 · 2 评论 -
十大经典排序算法:快速排序debug分析排序过程
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 目录前言快速排序思路分析快速排序案例排序过程断点调试快速排序测速 快速排序 快速排序法介绍: 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排原创 2022-01-26 01:09:16 · 779 阅读 · 5 评论 -
2022: 暴杀表达式, 脚踩逆波兰的时候到了
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 认识表达式与 逆波兰计算器实现 什么是前缀,什么中缀,什么是后缀?(理论加举例) 前缀 前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。为纪念其发明者波兰数学家Jan Lukasiewicz,前缀表达式也称为“波兰式”。例如,- 1 + 2 3,它等价于1-(2+3原创 2022-01-02 17:59:02 · 546 阅读 · 8 评论 -
【数据结构】计算机底层是用什么识别算数表达式的?
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 栈 我们这里将一个场景带入学习 请输入一个表达式 计算式:[722-5+1-5+3-3] 点击计算 计算出结果 请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),原创 2021-12-28 23:05:21 · 967 阅读 · 13 评论 -
看小朋友做游戏顿时解决了约瑟夫问题
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 环形链表 认识单向环形链表 这里我们以单向环形链表为例子 就是我们最后一个节点的next域指向头结点,形成闭环 引用场景以及问题 Josephu(约瑟夫、约瑟夫环) 问题 Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始原创 2021-12-24 23:38:06 · 3057 阅读 · 7 评论 -
【数据结构】轻松创造一个自己的双向链表
双向链表 双向链表应用实例,双向链表的操作分析和实现 管理单向链表的缺点分析: 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除 时节点,总是找到 temp,temp 是待删除节点的前一个节点(认真体会). 分析了双向链表如何完成遍历,添加,修改和删除的思路 双向链表实现思路 分析 双向链表的遍历,添加,修改,删除的操作思路===》代码实现 遍历 方和 单链表一样,原创 2021-12-23 00:34:21 · 565 阅读 · 17 评论 -
【链表面试题:腾讯】反转链表
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 反转链表 思路 * 1.先定义一个节点 reverseHead = new HeroNode(); * 2.从头遍历原来的链表,每次遍历一个节点就将其取出并且放到信的链表的最前端, * 3.原来的链表head.next = reverseHead.Next 思路执行流程图 代码 /** * @原创 2021-12-19 14:06:59 · 662 阅读 · 2 评论 -
【新浪面试题】 找到链表的k节点
前言 ★ 这里是小冷的博客 ✓ 优质技术好文见专栏 个人公众号,分享一些技术上的文章,以及遇到的坑 当前系列:数据结构系列 源代码 git 仓库 ‘ 数据结构代码地址 代码Git 仓库地址 新浪链表面试题 查找链表中的第k个节点 思路: 1.编写一个方法,接收head 节点,同时接收一个index 2,index表示的是倒数第index 个节点 3. 先把链表从头到尾遍历 得到链表的总长度 getlength 4。得到Size之后 我们从链表的第一个开始遍历(Size-index)个,就可以得到 5.原创 2021-12-18 15:31:31 · 1209 阅读 · 5 评论 -
【数据结构】用数据结构给水浒做了个英雄榜
链表 链表(Linked List)介绍 : 链表是有序的列表,但是它在内存中是存储如下 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 如图:发现链表的各个节点不一定是连续存储. 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 单向链表 单向链表存储节点思路图 单链表的应用实例 使用带 head 头的单向链表实现 –水浒英雄排行榜管理完成对英雄人物的增删改查操作 我们都知道 水浒传里有108位英雄吧 我们这里随便举例四个,原创 2021-12-17 21:37:16 · 1252 阅读 · 6 评论 -
【数据结构】什么?还能让数据排队遵守规则
队列 队列的一个使用场景 银行排队的案例: 队列介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) 数组模拟队列 数组模拟队列思路:思路图 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队 列的最大容量。 因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front 及 rear 分别记录队列前后端的下标,原创 2021-12-16 18:56:39 · 518 阅读 · 8 评论 -
【数据结构】二维数组无用的位置太多?这一招轻松解决
二维数组与稀疏数组 二维数组创建方法 int arr[][] = new int[1][1]; 第一个【】内存放有多少个一维数组 第二个【】存放一维数组的长度 arr[0][0] = 1 arr[0][1] 2 arr[0][2] 3 [输出] [1,2,3] 二维数组的遍历 int arr[][] = new int[2][2]; for (int[] row : arr) { for (int data : row) { System.out.printf("%d\t", da原创 2021-12-16 18:39:20 · 752 阅读 · 7 评论
分享