您的当前位置:首页正文

数据结构学习五—树的简介

2024-12-01 来源:个人技术集锦

背景音乐 Crazy Frog(疯狂的青蛙) 初中时听得歌 听一次洗脑一次。

typedef 结点 节点;

//输入法脑残,懒得去区分了,正确为结点

今天我们来讲树,首先来讲自然界的树,树有根,有枝干,有叶子,并且从根到叶子有且只有一条路径(奇葩的树,不考虑)。这是人类最喜欢接触的一种存储结构。欢喜吧,不信吧。

比如,你去图书馆看书,啊看什么呢?我想看小说,最新的有什么呢?《不学好数据结构你凭什么找老婆?老公也别想!》这本就不错。那么,其实你就经历了一个树的搜索的过程。我们来还原下

第一,你想看书。书就是根节点,书下一级有什么呢?工程类,科学类,历史类,小说类……你选了小说,小说有经典,最新……,你选了最新,最新下有《不学好数据结构你凭什么找老婆?老公也别想!》,《不学好C++你凭什么找老婆?老公也别想!》……,你选了第一本。这就是树的搜索。

那么来介绍下树的基本概念:

树有N个结点,N大于等于0,等于0时是空树。

忽略次要,直击主要

易错点混析

1.祖先结点 从根到这个叶子路上的所有结点

2.与你直接相连的上级结点为双亲结点(有且只有一个!根节点没有)

3.有相同双亲的节点成为兄弟结点。

树中一个结点的子节点个数称为该节点的度,度数为零的结点为叶子结点(与离散数学上的出度相同,注意区分)。树中结点最大的度称为树的度,欧耶!

非叶子结点称为分支结点(或非终端结点)。

结点的层次

根节点为第一层(部分教材为第零层,魔性),以此向下累加。

结点深度  从根节点往下数层数。

结点高度 阿西吧,从叶子结点往上数

树的高度/深度  树的最大层。

有序树 结点左右排列是有顺序的,别给人家乱换。

无序树  结点左右无序,随便换。

路径 从一个结点到另一个结点所经过的结点的有序序列。

路径长度  经过边的个数

性质性质

性质

性质

重要的事情多说几遍

树的结点数等于所有结点度数的和+1

度数为M的树的第i层上至多有M^(i-1)个结点


显示全文