05-5.1.1~2 树的定义和基本术语

2024-06-15 06:04
文章标签 定义 基本 05 术语 5.1

本文主要是介绍05-5.1.1~2 树的定义和基本术语,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 👋 Hi, I’m @Beast Cheng
  • 👀 I’m interested in photography, hiking, landscape…
  • 🌱 I’m currently learning python, javascript, kotlin…
  • 📫 How to reach me --> 458290771@qq.com

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻
此外,《程序员必备技能》专栏日后会逐步更新,感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏

基本概念

最初始的结点是根结点
结点和结点连接起来的线叫做
下面还有结点的的结点叫做分支结点
下面没有结点的结点叫做叶子结点
结点数为0的树叫做空树 ϕ \phi ϕ
与之对应的树叫做非空树

  • 有且只有一个根节点
  • 只有根结点没有前驱,其他的结点都能找到对应的前驱
  • 只有叶子结点没有后继,其他的结点都能找到对应的后继
  • 除了根结点外,任何一个结点都有且仅有一个前驱
  • 每个结点可以有0个或多个后继
    n > 1 n>1 n>1时,其余结点可分为 m ( m > 0 ) m(m>0) m(m>0)互不相交的有限集合 T 1 , T 2 , . . . , T m T_1,T_2,...,T_m T1,T2,...,Tm,其中每个集合本身又是一棵树,并且称为根结点的子树

基本术语

结点之间关系的描述

什么是祖先结点?

从当前结点往根结点出发,直到根结点为止,中间经过的所有结点,都是祖先结点

什么是子孙结点?

从当前结点出发,往下的分支都是它的子孙结点

什么是双亲结点(父结点)?

一个结点的直接前驱就是父结点

什么是孩子结点?

一个结点的直接后继

什么是兄弟结点?

一个结点的多个直接结点就是兄弟结点

什么是堂兄弟结点?

与当前结点同一级的,并且不是同一个父结点的结点,叫做堂兄弟结点

什么是两个结点之间的路径?

也就是两个结点之间的线,需要注意的是,这个路径只能是从上到下的

什么是路径长度?

经过几条边,长度就是多少

结点、树的属性描述

结点的层次(深度)——从上往下数(默认从0开始,但是要注意审题)
结点的高度——从下往上数
树的高度(深度)——总共有多少层
结点的度——有几个分支
树的度——各结点的度的最大值

有序树、无序树

有序树——逻辑上看,树中各结点的各子树从左至右是有次序的,不能互换
无序树——逻辑上看,树中各结点的各子树从左至右是无次序的,可以互换
具体看你用树存什么,是否需要用结点的左右位置反映某些逻辑关系,如果需要就用有序树

森林

森林—— m ( m > 0 ) m(m>0) m(m>0)棵互不相交的树的集合
m可以为0,也就是空森林

这篇关于05-5.1.1~2 树的定义和基本术语的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062621

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

Python中多线程和多进程的基本用法详解

《Python中多线程和多进程的基本用法详解》这篇文章介绍了Python中多线程和多进程的相关知识,包括并发编程的优势,多线程和多进程的概念、适用场景、示例代码,线程池和进程池的使用,以及如何选择合适... 目录引言一、并发编程的主要优势二、python的多线程(Threading)1. 什么是多线程?2.

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(