树的解析(一):基本概念和应用遍历方式

本文介绍了树的抽象概念,包括根节点、子树、度、叶子节点等概念,以及树的深度、高度等属性。讨论了二叉查找树的效率,并展示了三种遍历方式——先序遍历、中序遍历和后序遍历,及其在打印目录结构和计算磁盘占用空间等场景的应用。
摘要由CSDN通过智能技术生成

树的概念

对于大量输入数据,链表的访问时间太慢。树是非常有用的抽象概念。

递归是定义树的一种自然方式。一棵树是节点的集合。这个集合可以是空集。若不是空集,则树由根(root)节点及0-多个非空子树组成,这些子树每一棵的根都被来自根root的有向边(edge)所连接。

每一棵子树的根叫做root的child,而root是每一棵子树的根的parent。

一棵树是N个节点和N-1条边的集合,其中的一个节点叫做根节点。*N-1的结论是产生于如下定义:每条边都将某个节点连接到其父亲,而根节点没有父亲,其余每个节点都有一个父亲。

节点的度:节点拥有的子树数称为节点的度。

叶子节点:没有儿子的节点称为leaf。

兄弟:具有相同父节点的称为兄弟(siblings)。

路径:从节点n1-nk的路径定义为节点的n1,n2,n3...nk一个序列,使得对于1<=i<=k,节点ni是ni+1的父亲。*这也要求了路径必须从根节点往下遍历,而不能逆向而上。而且对于任意节点,有且只有一条路径。

深度:对任意节点的深度为从根到ni的唯一路径的长。根的深度为0。

:ni的高度为从ni到其树叶的最大的深度。因此,所有树叶的高度都是0。

一棵树的高等于它根的高,一棵树的深度等于它最深的叶子节点的深度。

一棵树的高等于它根的高,一棵树的深度等于它最深的叶子节点的深度。​​

 

 

树的实现

二叉查找树这种简单的数据结构,大部分操作的运行时间平均为O(logN)。是两种库集合类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值