5.12 树和森林的遍历

2023-11-13

一、树的遍历

1.先根遍历(根左右)——深度优先遍历

​ 若树非空,先访问根节点,再依次对每棵子树进行先根遍历

//树的先根遍历
void PreOrder(TreeNode *R){
    if(R!=NULL){
        visit(R);	//访问根结点
        while(R还有下一棵子树T)
            PreOrder(T);	//先根遍历下一棵子树
    }
}

​ 【注意】树的**先根遍历序列 与 这棵树相应二叉树的先序序列**相同

2.后根遍历(左右根)——深度优先遍历

​ 若树非空,先依次对每棵子树进行后根遍历,最后在访问根节点

//树的后根遍历
void PostOrder(TreeNode *R){
    if(R!=NULL){
        while(R还有下一棵子树T)
            PostOrder(T);	//后根遍历
        visit(R);	//访问根结点
    }
}

​ 【注意】树的**后根遍历序列 与 这棵树相应二叉树的中序序列**相同

3.层序遍历(用队列来实现)——广度优先遍历

​ ①若树非空,则根节点入队

​ ②对队列非空,队头元素出队并访问,同时将该元素的孩子依次入队

​ ③重复②直至队列为空

二、森林的遍历

1.先序遍历

​ 若森林为非空,则按照如下规则进行遍历:

​ ①访问森林中第一棵树的根结点

​ ②先序遍历第一棵树中的根结点的子树森林

​ ③先序遍历除去第一棵树之后剩余的树构成的森林

​ 【此过程的效果等同于**依次对各个树进行先根遍历**】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5.12 树和森林的遍历 的相关文章

  • 【计算机网络】概述

    计算机网络 复习篇 含习题及答案 1 第一章 概述 1 1 计算机网络在信息时代中的作用 1 2 互联网概述 1 3 互联网的组成 1 4 计算机网络在我国的发展 1 5 计算机网络的定义 1 6 计算机网络的性能 1 7 计算机网络体系结
  • GB9706.1-2007名词解释:电气间隙、爬电距离,绝缘、接地等

    一 安全距离名词解释 安全距离包括电气间隙 空间距离 爬电距离 沿面距离 和绝缘穿透距离 1 电气间隙 两个导体部件之间的最短空气路径 2 爬电距离 沿两个导体部件之间绝缘材料表面的最短路经 二 绝缘部分名词解释 基本绝缘 用于带电部分上对
  • Linux0.12内核之内存管理(2)

    本文主要介绍Linux0 12内核memory c中的函数 1 void free page unsigned long addr 释放物理地址addr处的一页内存 用于free page tables 函数 void free page
  • 理清js中数组与对象的区别-数据类型和Json格式

    Json的规格非常简单 只用一个页面几百个字就能说清楚 而且Douglas Crockford声称这个规格永远不必升级 因为该规定的都规定了 1 并列的数据之间用逗号 分隔 2 映射用冒号 表示 3 并列数据的集合 数组 用方括号 表示 4
  • js分支语句

    一 if条件判断语句 多条件判断
  • 谷歌插件开发:manifest.json 配置文件详解

    在当今的互联网时代 浏览器插件扮演着重要的角色 为用户提供了各种定制化的功能和增强体验 Google Chrome作为最受欢迎的浏览器之一 也提供了丰富的插件生态系统 而在Chrome插件的开发中 manifest json配置文件起着至关

随机推荐

  • 使用管理员权限打开cmd(命令提示符)的方法 (Windows10)

    目录 通过打开运行 Step1 win R Step2 输入cmd Step3 Ctrl Shift Enter 通过资源管理器 Step1 Ctrl Shift Esc Step2 鼠标左键点击 文件 Step3 Ctrl 鼠标左键点击
  • C语言利用数组输出26个小写字母

    带注释 include
  • Windows安装pnpm后提示“无法加载文件”错误

    环境 Windows 10 过程 今天在PowerShell命令行界面安装完pnpm包管理器后 执行pnpm v命令看是否有安装成功 报如下错误 pnpm 无法加载文件 C Users root AppData Roaming npm pn
  • discard long time none received connection. , jdbcUrl.......

    在druid中 日志输出报错discard long time none received connection jdbcUrl 的信息 但是对我们使用不会有影响 只是会影响性能 但作为强迫症的我 怎么会忍心看着这个ERROR呢 解决办法
  • java入门之 重写与重载

    一 重写 overriding 1 定义 子类重写父类的方法 通俗而言即为重新改写 将一个已有事物进行改变以适应新要求 2 要求 父类若有static private 则该方法不能重写 子类重写后的方法不能加static 方法名 方法参数
  • MathType公式编辑文本复制粘贴选项

    1 基于Web的Markdown格式 2 Typora
  • 88. 合并两个有序数组

    文章目录 题目描述 思路 代码 c 结果 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中
  • rk3288 6222b 模组调试 (rtl8822cs)--蓝牙

    任务 在rk3288 android7 1 上移植配置 rtl8822cs 的蓝牙模块 思路 拿到厂商的蓝牙驱动 参考里面的 驱动移植步骤 注 需要注意的是 最新的驱动是否和 Bluetooth app 中 jni 的代码匹配 文档中提到的
  • 数据结构---AVL树

    AVL树 AVL树的概念 AVL树节点的定义 AVL树的插入 源代码 AVL树的概念 二叉搜索树虽然可以缩短查找的效率 但是 如果数据有序或接近有序二叉搜索树将退化为单支树 查找元素相当于在顺序表中搜索元素 效率就会变低 因此 两位俄罗斯的
  • 基于NI_TestStand的智能驾驶自动化测试

    在汽车产业不断发展的今天 智能驾驶已经成为了汽车中必不可少的一部分 虽然目前真正的无人驾驶技术还未广泛应用于我们的日常生活中 但各式各样的驾驶辅助系统 如碰撞预警 自动刹车 自适应巡航等功能已经在为我们的驾驶员保驾护航 今天小编就带大家一起
  • deepin v23

    deepin v23虚拟机windows远程控制 仅限内网 解决deepin在虚拟机中鼠标卡顿延迟问题 需要安装x11vnc和xrdp 1 安装ssh 2 安装x11vnc 2 1 x11vnc配置开机自启 3 安装xrdp 3 1 打开终
  • ffmpeg rtsp 推流_RTSP网络摄像头 WEB端播放 并实时人脸检测

    彩色视频为摄像头的原始数据 灰色视频 灰度化 缩放 用来检测人脸 人脸图片为比对成功后回显 项目地址 https github com 15225845996 rtsp face 功能描述 1 浏览器实时播放摄像头信息 2 实时人脸检测 圈
  • Window主机加固

    win r 输入cmd进入命令提示符 用dir调出所有任务 cd 可以进入一个指定目录 cd 穿越或返回上一层 文件名有空格不连贯就是蓝标 箭头所指 没有空格的就是红色所指 它们的区别在于有空格是有双引号的 没有空格是没有的 切换盘的话 直
  • [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化 GeoPandas是一个Python开源项目 旨在提供丰富而简单的地理空间数据处理接口 GeoPandas扩展了Pandas的数据类型 并使用matplotlib进
  • Excel单元格数值统计

    Excel单元格数值统计 Excel 工作表中对选定区域的数值进行统计的功能非常实用 仿照Excel的这个功能 请对给定表格中选中区域中的单元格进行求和统计 并输出统计结果 为简化计算 假设当前输入中每个单元格内容仅为数字或公式两种 如果为
  • 2021-08-02

    触发器 查询 删除 修改 一 什么是触发器 触发器 trigger 是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法 它是与表事件相关的特殊的存储过程 它的执行不是由程序调用 也不是手工启动 而是由事件来触发 二
  • 分割2021算法合集

    魔改nnU Net夺冠 2021 BraTS 脑肿瘤分割竞赛第一名解决方案 魔改nnU Net夺冠 2021 BraTS 脑肿瘤分割竞赛第一名解决方案 代码 https github com rixez Brats21 KAIST MRI
  • 电子信息工程考研:12大专业方向解读

    导读 模式识别与智能系统专业解读 通信与信息系统专业解读 电路与系统专业解读 信号与信息处理专业解读 电子与通信工程专业解读 电力电子与电力传动专业解读 光电信息工程专业解读 物理电子学专业解读 控制工程专业解读 集成电路工程专业解读 精密
  • mysql row()函数_详解mysql数据库binlog三种模式的区别(row,statement,mixed)

    概述 Mysql binlog日志有三种格式 分别为Statement MiXED 以及ROW 这三种格式之间有什么区别呢 下面先介绍下各自的优缺点 ROW 日志中会记录成每一行数据被修改的形式 然后在slave端再对相同的数据进行修改 只
  • 5.12 树和森林的遍历

    一 树的遍历 1 先根遍历 根左右 深度优先遍历 若树非空 先访问根节点 再依次对每棵子树进行先根遍历 树的先根遍历 void PreOrder TreeNode R if R NULL visit R 访问根结点 while R还有下一棵