数据结构之树(图解)

文章目录

  • 前言
  • 一、树是什么?
  • 二、树的特点
  • 三、树的相关概念
  • 四、树的表示方法(孩子兄弟表示法)
  • 总结


前言

在学习完线性结构,例如顺序表、链表、栈、队列后,我们要开始学习一个新的数据结构----树

一、树是什么?

首先树是一个非线性的数据结构,由有限个节点组成的一个具有层次的集合。
如图,下面是树的逻辑结构,因为逻辑结构像一颗倒挂的树,也就是根在上,树枝朝下。
顾名思义被称为“”。

树的逻辑结构

二、树的特点

	我们来看上面的图
  1. 根节点:没有前驱结点的节点,如图中的A。
  2. 除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti
    (1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继
  3. 树是递归定义的。
  4. 树又被称作树形结构,是一对多的,也就是一个节点对应多个节点。

三、树的相关概念

  1. N个节点的树有N-1条边
  2. 节点的度: 一个节点含有的子树的个数称为该节点的度 ;如图:A的度为3
  3. 树的度: 一棵树中,最大的节点的度称为树的度;如上图:树的度为3
  4. 叶节点或终端节点: 度为0的节点称为叶节点; 如上图:J、K、L、M、G等节点
  5. 叶节点分枝节点: 度不为0的节点,有孩子节点的节点
  6. 父节点: 有子树的节点,有子节点的节点子节点:有父节点的节点
  7. 兄弟节点: 具有相同父节点的节点
  8. 堂兄弟节点: 双亲在同一层的节点
  9. 节点的层次: 根节点是第一层,以此类推
  10. 树的高度或深度: 树中节点的最大层次,也是叶节点的层次
  11. 节点的祖先: 从根节点到该节点的所有节点都是这个节点的祖先,也就是从根节点往下找这个节点经过 的节点,当然也包括根节点。
  12. 子孙: 以某个节点为根节点的子树中的任意一个节点都是该节点的子孙
  13. 森林: 互不相交的多棵树叫森林

树

四、树的表示方法(孩子兄弟表示法)

我们想用代码来写出一个完整的树,需要考虑的因素太多了,方法也很多,在这里我们讲一个树的最优方法供大家学习。

我们知道树是一对多的结构,所以这也同样会用到指针,但是指针应该有几个,都指向谁?这就又是一个问题了。不要慌张,先来看这颗树的逻辑结构。
树的逻辑结构

我们看到首先A这个根节点 链接着分别以B、C、D三个为根节点的子树,那我们是否就要在A这个节点上加三个指针呢?那是不是如果A链接4个就要加四个指针?很明显不可能这么做,这个时候就有一位大神发明了一种方法(孩子兄弟表示法)
这个方法总结成一句话就是,“父母看老大,老大看老二,老二看老三”。

如图:

孩子兄弟表示法

总结

以上就是我们今天讲述的 树的结构,下节课让我们继续学习新的知识-----二叉树

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白如何在一个月写一篇论文(中文核心,SCI)

小白如何半年发3篇sci的我教你如何快速“水”一篇sci论文_哔哩哔哩_bilibili 计算机视觉&#xff0c;cv领域 半年发3篇sci的我教你如何快速“水”一篇sci论文 计算机视觉(辅导 SCI EI 核心) 微信&#xff1a;whbwqq123或主页加up 小白如何快速写出一篇论文并成功发表&…

Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二)

这是继上一篇文章 “Elasticsearch&#xff1a;使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation &#xff08;一&#xff09;” 的续篇。在这篇文章中&#xff0c;我主要来讲述 ElasticVectorSearch 的使用。 我们的设置和之前的那篇文章是一样的&#xff…

【C】C语言文件操作

1.为什么使用文件 我们前面学习结构体时&#xff0c;写通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff0c;等下…

大彩串口屏读写文件问题

分区 本文使用的是大彩串口屏M系列的&#xff1a; 串口屏内部有三个分区&#xff0c;分别为A、B、C三个区&#xff1a; A区&#xff1a;系统区&#xff0c;存储组态工程文件 B区&#xff1a;数据区&#xff0c;存储配置信息&#xff0c;记录数据、历史曲线等 C区&#xff1a;备…

3.线性神经网络

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 线性回归基础优化算法一、线性回归1、买房案例2、买房模型简化3、线性模型4、神经网络5、损失函数6、训练数据7、参数学习8、显示解9、总结 二、 基础优化算法1、梯度下降2、学习率3、小批量随机梯度下降4、批量大小5、…

【Linux】【驱动】设备树常用 of 函数

【Linux】【驱动】设备树常用 of 函数 序常用的of函数添加我们要查找的节点的代码 of_find_node_by_path获取 compatible 属性内容的代码 of_find_property获取 reg 属性内容的代码 of_property_read_u32_array获取 status 属性内容的代码 of_property_read_string 演示代码操作…

docker+playwright

windows10 docker playwright 难点在于windows下docker的安装&#xff0c;以及官方hub被墙的困难。 wsl2 wsl2 ubuntu docker git clone https://gitee.com/lineuman/lcs_playwright.git npm install npx playwright test docker端口怎么映射到主机上面&#xff1f; 设置重…

图、深度优先(DFS)、广度优先(BFS)

图 基本介绍 表示方式 图的创建 from typing import Listclass Graph:vertex_list: List[str] [] # 存储顶点的数组edges: List[list] [] # 存储图中各条边的邻接矩阵num_edges: int 0 # 边的数总数def __init__(self, n: int):"""根据传入的顶点个数初始…

测开(性能测试---LoadRunner)

目录 一、LoadRunner的安装 二、Loadrunner的基本概念 三、开发测试脚本——VUG 3.1 脚本录制 3.2 脚本加强 四、设计场景——Controller LoadRunner是一款开源桌面应用软件&#xff0c;可用来模拟用户负载完成性能测试工作&#xff0c;LoadRunner的功能在版本不断升级的…

JWT详解解读读

&#x1f4d1;前言 本文主要是jwt解读文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#xff1a;努力一点&#…

WebDAV之π-Disk派盘 + 读出通知

手机各种推销通知太多,如何避免那些繁琐的通知内容,做出一键就能够阅读重要通知的最佳体验,帮助您更加快速和便捷的体验到那些应用内容?推荐大家使用读出通知。 读出通知APP可以设置接收通知的app,还可以用耳机操作,操作简单,你还可以指定播报设备,还有播报的声音的设置…

数据结构 | 顺序表专题

数据结构 | 顺序表专题 文章目录 数据结构 | 顺序表专题课前准备1. 目标2. 需要的储备知识3. 数据结构相关概念 开始顺序表1、顺序表的概念及结构2、顺序表分类3、动态顺序表的实现初始化顺序表顺序表的销毁顺序表的尾插顺序表的头插检查容量顺序表的尾删打印顺序表顺序表的头删…

静态网站免费部署平台介绍

静态网站免费部署平台 静态网站是指由 HTML、CSS 和 JavaScript 等静态文件构成的网站。静态网站部署平台是用于将静态网站文件托管到服务器上的平台。 静态网站部署平台有很多&#xff0c;其中也有一些提供免费服务。以下是一些比较流行的免费静态网站部署平台&#xff1a; …

VS的QT项目找不到qt环境-解决办法

用VS创建的QT项目分享给别人时&#xff0c;可能会出现项目识别不到QT环境的问题&#xff0c;这是因为对方的QT系统环境变量的路径不同&#xff0c;可以在 VS的属性 -> VC目录 -> 包含目录 添加如下内容&#xff1a; %USERPROFILE%\AppData\Local\Microsoft\WindowsApps…

异或运算的魔法

异或运算大家都知道指的是对于两个数转准成二进制之后&#xff0c;相同位置上的如果同时为或者&#xff0c;那么异或的结果就是0&#xff0c;不同就是1&#xff0c;比如01异或00结果是01&#xff0c;但是时间长了相信大家都很容易记混&#xff0c;那么有一种很好记的方式&#…

绕WAF手法总结

云锁 被拦截 http://www.test123.com/article.php?id1%20union%20select%201,2,3 绕过 http://www.test123.com/article.php?id-1/*!36000union*//*!36000distinct*//*!36000select*/1,2,user() 360websec 被拦截 http://www.xxx.com.cn/productshow.php?id79 绕过 http:/…

机器学习笔记 - 神经辐射场(NeRF)的简要概述

一、简述 神经辐射场十分重要。在表示和渲染 3D 场景领域,神经辐射场 (NeRF) 在准确性方面取得了巨大突破。 给定底层场景的多个图像,NeRF 可以从任意视点重建该场景的高分辨率、2D 渲染图。与局部光场融合 (LLFF) 和场景表示网络 (SRN) 等现有技术相比,NeRF 更能够捕获场景…

手撕排序之直接选择排序

前言&#xff1a; 直接选择排序是排序中比较简单的排序&#xff0c;同时也是时间复杂度不是很优的排序。 思想&#xff1a; 本文主要讲解直接选择排序的优化版本。 我们经过一次遍历直接将该数列中最大的和最小的值挑选出来&#xff0c;如果是升序&#xff0c;就将最小的和…

【递归、搜索与回溯算法】第五节.129. 求根节点到叶节点数字之和和814. 二叉树剪枝

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…

.jnlp

首先配置电脑的java环境。 百度搜索jre下载&#xff0c;会有很多结果&#xff0c;一般选择官网进行下载。 下载正确的jre版本。 我的电脑是windows 64位&#xff0c;根据你自己电脑的情况选择版本进行下载。不懂自己电脑是多少位的可以看下一步。 查看电脑是64位还是32…