聊聊数据结构中的树,建议收藏

本文介绍了数据结构中的树概念,包括树的定义、表示法和术语,如结点、度、层次等。接着探讨了二叉树、满二叉树和完全二叉树,以及二叉排序树和平衡二叉树(AVL树)的概念,强调了平衡的重要性。随后,文章讨论了二叉树的存储结构,包括顺序存储和链式存储,并引出了B-Tree和B+Tree,阐述它们在数据库索引中的应用及其优势。
摘要由CSDN通过智能技术生成

【这是一猿小讲的第 81 篇原创分享】

数据结构是 10 年前大学里学的一门课程,也是我北漂唯一携带的一本书。幸运的是,书还没有被孩子给撕碎。

为了让大家都能够搞懂「树」这个苦涩而硬核的知识,今天就重拾记忆,分享一下研发人员心中那些放不下的「树」。

不过,一定要冲好咖啡、沏壶好茶,心平气和去看文。

01. 「树」现实与虚拟的抽象


在「中华姓氏树」中寻找一片属于你的叶子,探寻一下家族的来源。

在脑海里尝试画一下「家谱树」。

看完现实中的树,那来看一看计算机的文件系统组织形式。

无论是现实的姓氏树、家谱树,还是计算机的文件系统,表现形式虽然不同,但是本质上却都是树。

那到底什么是树呢?

树是由 n(n≥0)个结点组成的有限集合。

当 n = 0 时,称为空树;

当 n > 0 时,有一个特殊的节点称为根结点(root),它没有前驱结点;其它结点分为 m 棵互不相交的子树。

如图示意,(a)为空树;(b)为 1 个结点的树;(c)为 n 个结点的树。

知道了什么是树,上面「家谱树」以及「文件系统」用到的树表示法,有没有学名呢?稍微科普一下。

图示法:是树的直观表示法,主要用于描述树的逻辑结构,如上面提到的家谱树。

横向凹入表示法:是用逐层缩进方法表示结点之间的层次关系,主要用于树的屏幕显示和打印输出,如上面提到的文件系统。

知道了什么树以及树的部分表示法,但是猿有猿声,鸟有鸟语,树也有术语。

02.「树」有术语


节点 or 结点,别再傻傻分不清?

节点:线上一个节点扛不住压力,那就索性再加一个节点。所以节点一般被认为是一个有处理能力的实体,例如一台服务器;

结点:包含一个数据元素及若干指向其子树的分支,在树的图形表示中为一个圆圈,算法中的点一般指的都是结点。

有些老铁习惯用「节点」,有些喜欢用「结点」,到底用哪个?

之前也没太注意这个细节,本次分享就采用「结点」二字。

话又说回来,只要掌握了本领,打败敌人,到底用的是亢龙有悔还是飞龙在天,其实已经没啥意义啦。

父结点、孩子结点与兄弟结点?

父结点:若一个结点含有孩子结点,则这个结点称为其孩子结点的父结

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值