【树——数据结构】

文章目录

      • 1.基本概念
      • 2.基本术语
          • 1.结点之间的关系描述
          • 2.结点,树的属性描述
          • 3.有序树,无序树
          • 4.森林
      • 3.树的性质
          • 考点1
          • 考点2
          • 考点3
          • 考点4
      • 4.树的存储结构
      • 5.树和森林的遍历

1.基本概念

结点,根节点,分支结点,叶子结点,边,子树
空树:节点数为0的树

非空树的特性

  1. 有且仅有一个根节点
  2. 没有后继的结点称为叶子结点
  3. 有后继的结点称为分支结点
  4. 除了根节点外,任何一个结点都有且仅有一一个前驱

树是一种递归定义的数据结构

2.基本术语

1.结点之间的关系描述
  1. 祖先结点/子孙结点
  2. 双亲结点(父节点) /孩子结点
  3. 兄弟结点/堂兄弟结点
  4. 两个节点之间的路径:只能从上往下
  5. 路径长度:路径上经过几条边
  6. 树的路径长度:从树根到每个结点的路径长度的总和
2.结点,树的属性描述
  1. 结点的层次(深度) :从上往下数
  2. 结点的高度:从下往上数
  3. 树的高度(深度) :总共多少层
  4. 结点的度:有几个孩子(分支)
    非叶子节点的度>0
    叶子结点的度=0
  5. 树的度: 树中各结点的度的最大值
3.有序树,无序树
  1. 有序树:逻辑上看,树中节点的各子树从左至右是有次序的,不能互换
  2. 无序树:逻辑上看,树中节点的各子树从左至右是无次序的,可以互换
4.森林

森林是m (m20)棵互不相交的树的集合

3.树的性质

考点1

结点数=总度数+1

考点2
  1. 度为m的树
    任意结点的度≤m (最多m个孩子)
    至少有一个结点度=m
    一定是非空树

  2. m叉树
    任意结点的度≤m (最多m个孩子)
    允许所有结点的度都<m
    可以是空树

考点3

在这里插入图片描述

考点4

在这里插入图片描述

4.树的存储结构

双亲表示法

  1. 每个结点中保存指向双亲的"指针”
  2. 根节点存储在0, -1表示没有双亲
  3. 新增数据元素无需按逻辑上的次序存储
  4. 优点:查指定结点的双亲很方便
  5. 缺点:查指定结点的孩子只能从头遍历

孩子表示法

  1. 顺序+链式存储——指针指向第一个孩子
  2. 优点:找孩子方便
  3. 缺点:找父节点不方便

孩子兄弟表示法

  1. 用二叉链表存储树——左孩子右兄弟
  2. 孩子兄弟表示法存储的树,从存储视角来看形态上和=叉树类似
  3. 考点:树与二叉树的相互转换。本质就是用孩子兄弟表示法存储树

重要考点:树、森林与二叉树的转换

  1. 本质:用二叉链表存储森林——左孩子右兄弟
  2. 森林中各个树的根节点之间视为兄弟关系

5.树和森林的遍历

树的遍历
先根遍历——深度优先遍历
先根,后子树
树的先根遍历序列与这棵树相应二叉树的先序序列相同
后根遍历——深度优先遍历
先子树,后根
树的后根遍历序列与这棵树相应二叉树的中序序列相同
层序遍历(用队列实现)——广度优先遍历

森林的遍历
先序遍历

  1. 若森林为非空,则按如下规则进行遍历:
  2. 访问森林中第一棵树的根结点。
  3. 先序遍历第一棵树中根结点的子树森林。
  4. 先序遍历除去第一棵树之后剩余的树构成的森林。
  5. 效果等同于依次对各个树进行根遍历

中序遍历

  1. 若森林为非空,则按如下规则进行遍历:
  2. 中序遍历森林中第一棵树的根结点的子树森林。
  3. 访问第一-棵树的根结点。
  4. 中序遍历除去第一-棵树之 后剩余的树构成的森林。
  5. 效果等同于依次对各个树进行根遍历
森林二叉树
先根遍历先序遍历先序遍历
后根遍历中序遍历中序遍历

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

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

相关文章

Redis系列-1 Redis介绍

背景&#xff1a; 本文介绍Redis相关知识&#xff0c;包括Redis的使用、单线程机制、事务、内存过期和淘汰机制。后续将在《三方件-3 Redis持久化机制》中介绍Redis基于RDB和AOF的持久化机制&#xff1b;在《三方件-4 Redis集群》介绍主从、哨兵和Cluster集群相关的内容&#…

python 11Pandas数据可视化实验

实验目的&#xff1a; 学会使用Pandas操作数据集&#xff0c;并进行可视化。 数据集描述&#xff1a; 该数据集是CNKI中与“中药毒理反应”相关的文献信息&#xff0c;包含文章题目、作者、来源&#xff08;出版社&#xff09;、摘要、发表时间等信息。 实验要求&#xff1…

QT-QTCreator环境配置

准备工作&#xff1a; 下载QT: 链接&#xff1a;https://pan.baidu.com/s/1prJcsC4DGqhKiXvLuPQFVA?pwd60b3 提取码&#xff1a;60b3下载WindowsKits&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1QNiS3HpbH5M5kXx5AhkqnQ?pwde2h8 提取码&#xff1a;e2h8安装的…

Python-快速搭建一个管理平台

目录 &#x1f4dc; 准备工作 一、项目介绍 ✨ 二、制作数据库表 添加信息 ⚒️ 三、运行client.exe &#x1f680; 1、连接数据库&#xff0c;选择对应表&#xff0c;生成代码 2、把后端代码依次复制到项目中 3、把前端代码依次复制到前端项目中 4、添加路由 四、运行后端项目…

[1678]旅游景点信息Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 旅游景点信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

数据结构:图

数据结构&#xff1a;图 前言 在自动化程序分析中&#xff0c;图和树的一些算法起到了至关重要的作用&#xff0c;所以在开始自动化程序分析的研究前&#xff0c;我用了两天复习了一遍数据结构中的图。本章主要内容有图的基本概念&#xff0c;图的存储和图相关的经典算法&…

OpenCV(二)—— 车牌定位

从本篇文章开始我们进入 OpenCV 的 Demo 实战。首先&#xff0c;我们会用接下来的三篇文章介绍车牌识别 Demo。 1、概述 识别图片中的车牌号码需要经过三步&#xff1a; 车牌定位&#xff1a;从整张图片中识别出牌照&#xff0c;主要操作包括对原图进行预处理、把车牌从整图…

数据结构--顺序表经典OJ题

例1&#xff1a;合并有序顺序表 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff…

测试开发工具开发 -JMeter 函数二次开发

在JMeter中开发自定义函数是一个常见的需求&#xff0c;允许我们扩展JMeter的功能以适应特定的测试需求。自定义函数可以用来处理数据&#xff0c;生成输出&#xff0c;或者执行特定的运算。通过JMeter函数二次开发可以帮我们解决实际测试过程中造数难的问题 用过JMeter的同学…

JAVASE->数据结构|顺序表底层逻辑

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1. 什么是 List 2. List 常见接口介绍 3. …

java并发编程-AQS介绍及源码详解

介绍 AQS 的全称为 AbstractQueuedSynchronizer &#xff0c;就是抽象队列同步器。 从源码上可以看到AQS 就是一个抽象类&#xff0c;它继承了AbstractOwnableSynchronizer&#xff0c;实现了java.io.Serializable接口。 public abstract class AbstractQueuedSynchronizere…

信号与线性系统 1绪论

信号 信号是随时间变化的某种物理量&#xff08;狭义&#xff09; 本课程中&#xff0c;信号用 函数&#xff08;而且是一维函数&#xff09;表示 连续 离散 信号分类 确定与随机&#xff1a;是否能以确定的时间函数表示离散与连续&#xff1a;是用全体实数还是特定整数来描述…

普乐蛙景区vr体验馆VR游乐场设备身历其境体验

小编给大家推荐一款gao坪效产品【暗黑战车】&#xff0c;一次6人同乘&#xff0c;炫酷外观、强大性能和丰富内容适合各个年龄层客群&#xff0c;紧张刺激的VR体验让玩家沉浸在元宇宙的魅力中&#xff0c;无论是节假日还是平日&#xff0c;景区商场助力门店提高客流量和营收~ ◆…

苹果和OpenAI再续前缘,iOS 18会是颠覆级的吗?|TodayAI

据彭博社最新报道&#xff0c;苹果公司已经与人工智能领域的先锋企业OpenAI重启了对话&#xff0c;双方目前正在讨论一项可能的合作&#xff0c;以将OpenAI的生成式人工智能技术整合到苹果即将推出的iOS 18操作系统中。这一举措表明&#xff0c;苹果正加速其在人工智能技术上的…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言&#xff08;Gin&#xff09;开发Web程序&#xff0c;前端太弱了&#xff0c;得好好补补课&#xff0c;完了再来更新。 1、环境准备 新建项目&#xff0c;生成 go.mod 文件&#xff1a; 出现报错&#xff1a;go: modules disabled by G…

【JavaEE网络】网络编程及其应用概述

目录 面向字节流粘包问题 TCP异常情况TCP/UDP对比 网络层重点协议IP协议IP地址 面向字节流 粘包问题 在面向字节流的情况下&#xff0c;会产生一些其他的问题&#xff1a;粘包问题&#xff0c;这里“粘”的是“应用层数据报”&#xff0c;通过TCP read/write的数据&#xff0…

AI手机,走入小径分岔的花园

博尔赫斯在他的成名作《小径分岔的花园》里&#xff0c;描述了一种奇妙的世界观&#xff1a;一个可能性被选择之后&#xff0c;出现了许多不同的后世&#xff0c;许多不同的时间。 在现实世界中&#xff0c;选择不会如此神奇。但站在岔路口的抉择&#xff0c;也一定会带来结果的…

Mysql的关联查询以及语句

一、mysql的连接查询 1、等值连接 这里是三张表的等值连接 select rp.role_id,rp.permission_id from role_permission rp, role r, permission p where rp.role_idr.id and rp.permission_idp.id 2、内连接&#xff1a; 角色&#xff1a;系统管理员 是否拥有权限&#xf…

【Docker】docker部署lnmp和搭建wordpress网站

环境准备 docker&#xff1a;192.168.67.30 虚拟机&#xff1a;4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…

【Web】D^3CTF之浅聊d3pythonhttp——TE-CL请求走私

目录 step0 题目信息 step1 jwt空密钥伪造 step1.5 有关TE&CL的lab step2 TE-CL请求走私 payload1 payload2 step0 题目信息 注意到题目源码前端是flask写的&#xff0c;后端是web.py写的 frontend from flask import Flask, request, redirect, render_templat…