文章 2024-10-16 来自:开发者社区

数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)

前言 一、二叉树与B树 1.1 叉树的问题分析 二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树 二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1亿), 就存在如下问题: 问题1:在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响 问题2:节点海量,也会造成二叉树的高度很大,会降低操...

数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
文章 2024-10-16 来自:开发者社区

数据结构与算法学习十七:顺序储存二叉树、线索化二叉树

一、顺序储存二叉树 1.1 概念 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,看下面的示意图。 1.2 特点 顺序二叉树通常只考虑 完全二叉树: 第n个元素的左子节点为 2 * n + 1 第n个元素的右子节点为 2 * n + 2 第n个元素的父节点为 (n-1) / 2 n : 表示二叉树中的第几个元素(按0开始编号如图...

数据结构与算法学习十七:顺序储存二叉树、线索化二叉树
文章 2024-10-16 来自:开发者社区

数据结构与算法学习十六:树的知识、二叉树、二叉树的遍历(前序、中序、后序、层次)、二叉树的查找(前序、中序、后序、层次)、二叉树的删除

一、树的介绍 1.1 为什么需要树这种数据结构 1.1.1 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。检索、修改速度快。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图]画出操作示意图: 1.1.2 链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接....

数据结构与算法学习十六:树的知识、二叉树、二叉树的遍历(前序、中序、后序、层次)、二叉树的查找(前序、中序、后序、层次)、二叉树的删除
文章 2024-08-09 来自:开发者社区

LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解

LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解 二叉树遍历 题目描述 从根节点往下查找,先找左子树、直至左子树为空(左子节点逐个入栈、直至左子节点为空),再找右子树(出栈找右子节点) 前序遍历:根左右,第一次经过节点即打印,直到打印null,往回溯,打印右子树 中序遍历:左根右,第二次...

文章 2024-08-09 来自:开发者社区

LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零

LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零java多种解法 1 子数组最大平均数 题目描述 给一个整数数组,找出平均数最大且长度为 k 的下标连续的子数组,并输出该最大平均数。 滑动窗口: 6 2 7 5 8 4 3 1 6 2 7 5 8 4 3 1 窗口...

文章 2024-07-05 来自:开发者社区

刷算法Leetcode---9(二叉树篇Ⅲ)

前言 本文是跟着代码随想录的二叉树顺序进行刷题并编写的 代码随想录 二叉树的题目较多,就多分了几次写,这是第三篇 这是力扣刷算法的其他文章链接:刷算法Leetcode文章汇总 二叉树篇Ⅲ(1)226. 翻转二叉树 dfs,对每个节点反转左右子树 class Solu...

文章 2024-06-25 来自:开发者社区

【数据结构和算法】--- 二叉树(5)--二叉树OJ题

一、二叉树OJ题 1.1 单值二叉树 题目描述: 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回 false。 做题链接: 965. 单值二叉树 解题思路: 我们可以利用递归分治的思想,将此问题分解为:根节点和左孩子的值是否相等(root->left->val != root-...

【数据结构和算法】--- 二叉树(5)--二叉树OJ题
文章 2024-06-25 来自:开发者社区

【数据结构和算法】--- 二叉树(4)--二叉树链式结构的实现(2)

一、二叉树剩余函数 1.1二叉树的层序遍历 层序遍历: 除了先序遍历、中序遍历、后序遍历外,还可以对二叉树进行层序遍历。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。 可以参考下图: ...

【数据结构和算法】--- 二叉树(4)--二叉树链式结构的实现(2)
文章 2024-06-25 来自:开发者社区

【数据结构和算法】--- 二叉树(3)--二叉树链式结构的实现(1)

一、二叉树的创建(伪) 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,且为了方便后面的介绍,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。 基于二叉树的链式结构,于是可以先malloc动态开辟出二叉树的每个节点并初始化,然后通过节...

【数据结构和算法】--- 二叉树(3)--二叉树链式结构的实现(1)
文章 2024-06-25 来自:开发者社区

【数据结构和算法】---二叉树(2)--堆的实现和应用

一、堆的概念及结构 如果有一个数字集合,并把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,且在逻辑结构(即二叉树)中,如果每个父亲节点都大于它的孩子节点那么此堆可以称为大堆;那么如果每个父亲节点都小于它的孩子节点那么此堆可以称为小堆。 堆的性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 ...

【数据结构和算法】---二叉树(2)--堆的实现和应用

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能搜索推荐

智能推荐(Artificial Intelligence Recommendation,简称AIRec)基于阿里巴巴大数据和人工智能技术,以及在电商、内容、直播、社交等领域的业务沉淀,为企业开发者提供场景化推荐服务、全链路推荐系统开发平台、工程引擎组件库等多种形式服务,助力在线业务增长。

+关注