tree--树,最常见的复杂关系结构

简单剖析B树(B-Tree)与B+树 注意:首先需要说明的一点是:B-树就是B树,没有所谓的B减树 引言   我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗?   答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到... 阅读详情
昨天想用Python解析html文档,仔细研究了一下Html网页之后,发现所有html都是由xml标签组成的树结构。然后今天就总结一下常见的这种结构,原来树结构不只是在html网页中有,他遍布大自然。
下边例举几个例子:
1.细胞有丝分裂,
我们都知道植物与动物成长的过程其实就是细胞的分裂过程,人和植物其实质上是一样的,都是树形结构。由最初的受精卵,一直以二叉树的结构分裂开来,在这个分裂的过程中子细胞与父细胞开始出现了一些不同,他们在功能上开始出现了分工合作。但通过每一个子细胞,我们都可以找到最初的祖细胞信息,这就是都有相同的DNA,只是细胞在进行二叉树成长的过程中,他的一些DNA外部属性发生了变化。这些变化就像htm标签中的标签属性一样。
2.html文档结构
根标签<html> </html>-->body标签<body> </body>-->接来就是整个网页界面之间的关系标签。
3.家族族谱
以前小时候,听说那些地主和富人家里都是有家族族谱的。这种家族族谱的结构和html一样是同一种树形结构。
爷爷辈,父叔辈,兄弟辈,子女辈,孙子辈,重孙辈。。。等等,一个完美的树形结构,随然所有的人都来自祖辈,但在树中的每一个人都又是不同的,他们有不同的职业,不同的爱好。又与另一棵树进行杂交。
4.软件的界面
作客户端开发的人最常要打交道的东西就是用户界面,界面有场景中的父界面,在父界面中可能会再多出一个层,层中可能会有一张图片,图片中又有一个按钮。很多游戏中喜欢把所有的界面都叫作节点(node),父节点可以添加子节点,这样以树形一层一层的组成一棵界面树结构。
5.企业管理体系
董事长-->董事会成员-->部门经理-->岗位组长-->普通工人,等等,从上到下组成了一棵企业树。
6.金融体系
国际货币基金组织--->各国中央银行(美国是美联储,全世界最有权利的中央银行)--->各国的商业及国有银行--->企业贷款,企业负债,个人存款,个人负债--->企业股票证卷(与存款一样,也是一种债务)--->大股东--->散户.
金融体系,这里我想多说一下,这棵树是目前与我们生活最贴近的一棵体积最大的树,他是整个社会运行的基础,最少目前是这样的。 整个金融体系其实就是一种债务关系,是某些人或者组织对另一个组织的借贷关系。就是互相之间欠下的债。这种债关系组成了这棵金融树。
6.游戏中的人体骨骼动画
这也是组一级的动画传递,先是身体的根节点,这个节点一般是人体的臀部,然后是上身,腿,肩,头和手臂,手腕,手指等等,这种关系也是一种树形关系。
总结一下,说了这么多的树,他们有什么共同点呢:
1)所有子树及叶子节点都由最初的根结点控制。
 动物植物都是由最初的一个细胞分裂出来;
 所有的html子标签都包含在<html> </html>标签中.
 家族是由最祖辈的那一对人产生;
 软件界面由根场景层控制;
 企业由董事会控制;
 整个金融体系由国际货币基金组织控制;
人体骨骼动画由根骨骼控制。
这些祖节点是否存在则决定着子节点是否可以正常保持其之间关系的重点。但是,基本上所有的子节点都有向上查找其父节点的关系链,有的子节点还保存着祖节点的全部信息,像细胞。
2)这些树都可以使用我们软件中的list和map进行保存和查找。
我们可以建立一种结构,使得每一个子节点都可以保存整棵树的关系。这样在我们解析html文档,想设计一个网络爬虫时,就可以轻松从大量的html文档中找出我们所需要的内容,并同时找出和他有关系的html标签。
同样的,我们一旦知道了软件界面的树关系,我们就可以从这种结构中自动生成我们想要的软件设计代码树。所有的客户端开发将会实现自动化。
如果我们要玩金融,玩股票,就需要研究整个金融体系之间的债务关系,那么这棵金融树就正是我们想要的,他可以轻松帮我们搞定这个非常庞大和复杂的关系网,让我们从中找出规律。
在我们维护企业正常运行的过程中,企业树内部各个成员之间都有一定的关系,而我们这种树结构将帮助我们完善企业管理体系,使企业内部矛盾可以未卜先知。
LSM 树(Log-Structured Merge-Tree) 原理 文章目录1. LSM 树介绍1.1 背景1.2 核心思想2. 基本原理2.1 写数据2.2 读数据3. LevelDB 中的 LSM 1. LSM 树介绍 1.1 背景 传统关系型数据库通常在读性能上有较高的要求,通过以下方式组织数据能够在复杂的读场景下(比如按关键字或者范围)高效地进行查找 二分查找: 将数据按一定规则顺序保存,使用二分查找可完成特定 key 的快速查找 哈希:使用哈希将数据分割存储在特定位置 B+树:使用 B+树 或者 ISAM 索引顺序存取等方法组织数据,可以减少外部文件的读取 外 阅读详情

相关推荐

【数据结构基础】树 - 前缀树(Trie Tree)

在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie 这个术语来自于 retrieval。根据词源学,trie 的发明者 Edward Fredkin 把它读作/ˈtriː/ “tree”。

DeveloperFire的博客 5501

组合模式(Composite Pattern): 复杂的树形结构

组合模式”和“组合优于继承”这一俗语之间, 并没有直接的概念联系。

萧萧的专栏 2380

Python数据结构之树(Tree)

本文介绍了Python中树(Tree)数据结构的基本概念和常见类型,重点讲解了二叉树和平衡二叉树的实现与应用。内容包括树的基本术语(节点、根节点、叶子节点等)、二叉搜索树(BST)的特点与操作(查找、插入、删除)、树的遍历算法(前序、中序、后序)以及代码实现。此外还详细介绍了平衡二叉树的性质、旋转操作及其在数据库索引等场景的应用,并提供了AVL树的Python实现代码。文章适合需要掌握树结构基础和算法实现的Python开发者。

weixin_50877427的博客 1266

一文读懂较复杂的数据结构——树,二叉树

树 树是n(n>=0)个结点构成的有限集,n=0时称为空树,在任意一棵非空树中有且仅有一个结点称为根结点,其余结点可分为m(m>0)个互不相交的有限集,每个有限集又是一棵树,它们称为根结点的子树。 术语解释 结点的度 当前结点向下直接连接的结点的个数 树的度 树中所有结点的度的最大值 子结点 一个结点含有的子树的根结点称为该结点的子结点 父结点 若一个结点含有子结点,则这个结点称为其子结点的父结点 兄弟结点 拥有同一父结点的结点互为兄弟结点 叶结点 没有子树的结点叫做叶结点 祖先结

WPQ的博客 609

C/C++ tree234树算法详解及源码

Tree234树算法是一种非常高效的数据结构,用于存储和操作有序的数据集合。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2904

【二叉搜索树 Binary search tree、平衡二叉树Balanced binary tree】时间复杂度与树的高度h相关,所以需要尽可能的降低树的高度

Binary search tree:二叉搜索树。 主要由四个方法:(用C语言实现或者Python) 1.search:时间复杂度为O(h),h为树的高度2.traversal:时间复杂度为O(n),n为树的总结点数。3.insert:时间复杂度为O(h),h为树的高度。4.delete:最坏情况下,时间复杂度为O(h)+指针的移动开销。可以看到,二叉搜索树的dictionary operati

专注于计算机研发知识和资讯分享 1万+

js处理复杂形树状结构数据 1

// 处理复杂形树状结构: /** * params: [] 数据源 * result: [] 存放结果的数组 * key: [] 副本,存放上一次处理结果 * values: [] 副本 * * 应用场景: 最终是要到最后一层,需要用到每一层的节点的部分数据,最后需要组拼起这部分数据 * 解决思路: 遍历数据源,当遍历的当前项中的数据有children节点,在该节点拷贝一份副本,用个变量保存, * 用这个变量作为下一轮循环的副本,直到当前项中没有children节点,最后将保存下来的数据

weixin_42060658的博客 811

Html网页目录树效果

轻松做出html网页目录树效果,本资料适用于初学者,不占用内存,不占用资源,轻轻松松在页面搞定

Java递归实现树形结构(简洁版,复杂版)

【代码】Java递归实现树形结构(简洁版,复杂版)

qq_37823919的博客 720

html 树形,树状,层级展开js代码

非常简易的树形无限极展开html5代码,适合菜单伸缩,组织机构伸缩等等。

图像处理(12)--图像各种噪声及消除方法

文章目录结构1.什么是图像噪声2. 图像噪声来源3. 噪声分类及其消除方法3.1 高斯噪声及其消除方式3.1.1 如何确定一种噪声是高斯噪声3.1.2 高斯滤波消除高斯噪声3.1.3 高斯函数的重要性质3.2 瑞利噪声及其消除方式3.3 伽马(爱尔兰)噪声及其消除方式3.4 指数分布噪声及其消除方式3.5 均匀噪声及其消除方式3.6 脉冲(椒盐)噪声及其消除方式 1.什么是图像噪声 图像噪声是指...

ShaneHolmes 11万+

Arthas : 在线分析诊断工具Arthas(阿尔萨斯)

1.美图 2.背景 想学JDK自带的工具,BTrace然后,同事说这个过时了,但是我不是很相信,因为是JDK自带的工具,他推荐这个,于是我就来看看这个到底是什么东西。 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 开源地址:git地址 官方文档:官方 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的...

九师兄 4808

机械臂学习:视觉引导——绪论

视觉引导 = 定位 + 引导定位:视觉系统定位到待引导的物体引导:视觉系统引导机械臂按需要的轨迹实现一定的工艺流程(过度点:人为指定机械臂的轨迹防止碰撞)(点云匹配:解决位姿估计姿态估计的问题)无序抓取的三个核心技术:3d识别(图中的点云匹配) 抓取方法路径规划(防止机械臂的碰撞,如自身碰撞等)如果只有同一高度的平移和旋转,其实并不需要点云,用单目就可以做,但是如果涉及到物体的倾斜以及高度的变换,那就是单目力所不能及,所以就是第三种情况:平移旋转加垫高。

2303_80018785的博客 4041

树 - 前缀树(Trie Tree)

在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie 这个术语来自于 retrieval。根据词源学,trie 的发明者 Edward Fredkin 把它读作/ˈtriː/ “tree”。

珍惜当下 6042

手把手教你用Python实现最简单的语义通信(Sem Comm)Demo

本文通过Python和PyTorch,手把手教你构建一个基于深度学习的语义通信(Semantic Communication)Demo。该Demo使用自编码器架构,从MNIST图像中提取低维语义特征进行传输与重建,实现了从“传输比特”到“传递含义”的跨越,并探讨了其效率优势与鲁棒性。

weixin_29080843的博客 245

Ubuntu 20.04 LTS下5分钟搞定ONLYOFFICE协作空间社区版(Docker版保姆级教程)

本文提供了一份在Ubuntu 20.04 LTS系统上,通过Docker快速部署ONLYOFFICE协作空间社区版的保姆级教程。内容涵盖从系统准备、Docker环境搭建,到执行自动化安装脚本、完成Web初始化的全流程,并详细说明了部署后的安全配置、数据备份及基本运维要点,帮助用户高效构建私有、安全、可控的团队文档协作平台。

weixin_28826961的博客 260

数据结构(AVL树、B-Tree、B+Tree)

B-Tree(Balanced Tree),即B树,是一种自平衡的树形数据结构,专为磁盘和其他直接访问的辅助存储设备而设计,广泛应用于数据库和文件系统中。AVL树是一种自平衡的二叉搜索树,它的特点是每个节点的左子树和右子树的高度差(平衡因子)的绝对值不超过1。综上所述,B-Tree是一种高效的数据结构,通过保持树的平衡性和有序性,支持高效的查找、插入和删除操作。综上所述,B+Tree的原理基于其特殊的数据结构和高效的查找、插入、删除操作。B+Tree的原理主要基于其数据结构和查找、插入、删除等操作的特点。

cuishujian_2003的博客 1820

[PCIe5.0] 3.4.1 Flow Control Initialization State Machine Rules

流控初始化是PCIe链路中每个虚拟通道(VC)启用的必经流程,分为FC_INIT1和FC_INIT2两个阶段,确保发送端与接收端的缓冲区信用值协商一致。

系统固件工程师 138

【笔记】树(Tree)

树(Tree)是一种非线性的数据结构,它是n(n >= 0)个结点组成的一个具有层次关系的有限集。之所以把它叫做树是因为它看起来像一颗倒挂的树,也就是它的根是朝上,而叶子是朝上的。在n=0时称为空树。有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m > 0)个互不相交的有限集T1、T2、...... 、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。注意:在树型结构中,子树之间不能有交集,否则就不能是树形结构。如果相交了,那就是图。

weixin_73359101的博客 2657

基于FPGA的UDP 通信(六)

本文基于FPGA和MATLAB对千兆以太网通信模块UDP数据发送(FPGA发送)进行联合调试。

记录所学,分享知识,结识挚友 4728

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:步进电机PID位置控制系统的实现

步进电机(Stepper Motor)是一种将电脉冲信号转化为角位移的执行元件,具有结构简单、控制方便、定位精度高等优点,广泛应用于数控机床、机器人、打印机、3D打印机等需要精确定位的场合。传统的步进电机多采用开环控制,但在高速或负载变化较大的情况下容易出现丢步、振荡等问题。为提高控制精度与响应性能,闭环PID控制被引入步进电机的位置控制中,通过编码器或旋转变压器等反馈装置,实现高精度、高稳定性的位置控制。本教程将带你使用构建一个基于PID控制的步进电机位置控制系统仿真模型步进电机建模。

MHD0815的博客 9686

哈夫曼树(Huffman Tree):定义、操作及时空复杂度分析

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。对于一棵二叉树,其带权路径长度(WPL,Weighted Path Length)是树中所有叶节点的权值乘以其到根节点的路径长度(路径上的边数)之和。例如,假设有叶节点权重分别为w1w2w3,对应的路径长度为l1l2l3,那么这棵树的。哈夫曼树就是在给定一组带权值的节点时,通过特定的构造方法得到的使得WPL最小的二叉树结构。

m0_57836225的博客 1947

Linux 配置 multipath 多路径

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 3296

tree234树的算法实现

        在数学上tree234 树和 红黑树是等价的,所以tree234树可以做为研究红黑树算法的辅助,因为从算法层面和理解层面红黑树要比tree234复杂using System;using System.Collections.Generic;using System.Text;namespace HBDiscover.DSObj.Tree234{ 

bingbing200x的专栏 5541

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

B树 二叉树 B-Tree B+Tree 详解

B树 二叉树 B+树 B-树

u013028240的专栏 1561

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【redis】前缀树 trie-radix tree-rax

前缀树(trie),基数树(radix tree),redis 自适应基数树(rax tree),都是 前缀压缩树(prefix tree)的变种 ,在存储效率、查询性能、功能逐步优化。

呆呆的猫的博客 1198

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: unreal engine 4 生成Actor及实例化UObject对象
下一篇: 股票交易口诀(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值