【数据结构与算法】树的存储,森林 详解

news2024/11/26 8:34:51

树的几种存贮结构(双亲表示法、孩子表示法、孩子兄弟表示法)的优缺点,各自适应的运算。

  1. 双亲表示法:

    • 优点:方便查找双亲及其祖先结点
    • 缺点:
      1. 查找孩子和兄弟结点比较费事
      2. 未表示出结点之间的先后次序
    • 适应的运算:查找节点的双亲,合并两棵树等。
  2. 孩子表示法(孩子链表表示法):

    • 优点:
      1. 方便查找孩子及其子孙结点
      2. 能表示出结点之间的先后次序
    • 缺点:
      1. 查找结点的双亲及祖先费事
      2. 查找结点的兄弟也费事
    • 适应的运算:查找节点的孩子,插入节点等。
  3. 孩子兄弟表示法(二叉链表表示法):

    • 优点:
      1. 便于实现树的各种操作,如查找孩子、子孙或兄弟结点
      2. 能表示出结点之间的先后次序
    • 缺点:找结点的双亲及祖先比较费事
    • 适应的运算:查找节点的兄弟,查找节点的孩子,插入节点,删除节点等。

哪种存贮结构可将森林转为二叉树。

可以使用"左孩子右兄弟"表示法将森林转换为二叉树。在这种表示法中,每个节点有两个指针,一个指向其第一个孩子(左孩子),另一个指向其下一个兄弟(右兄弟)。

这种方法将森林中的每棵树转换为二叉树,其中树的根是二叉树的根,树的子树(森林)转换为二叉树的左子树,而森林的其余部分转换为二叉树的右子树。

此种结构各域的注释。

每个节点包含以下字段:

  • 数据域:存储节点的数据。
  • 左孩子指针:指向节点的第一个孩子。如果节点是叶子节点,那么这个指针为空。
  • 右兄弟指针:指向节点的下一个兄弟。如果节点是同一父节点的最后一个孩子,那么这个指针为空。

说明在这个结构中怎样找到森林的n棵树。

要找到森林的n棵树,可以从根节点开始,沿着"右兄弟"指针遍历n-1次。具体步骤如下:

  1. 从根节点开始。
  2. 沿着"右兄弟"指针移动n-1次。每次移动都将你带到下一棵树的根节点。
  3. 停止移动后,你将位于第n棵树的根节点。

这种方法的前提是,森林的所有树都在同一层级,并且根节点的"右兄弟"指针指向下一棵树的根节点。如果森林的树不在同一层级,或者根节点的"右兄弟"指针不指向下一棵树的根节点,那么这种方法可能无法正确找到第n棵树。

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

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

相关文章

基于国产飞腾2000制作的paddleocr hubserving服务docker镜像文件

paddleocr hubserving国产化飞腾、鲲鹏armv8 api服务镜像制作 一、编译paddle paddle官网说明在处理器飞腾2000和鲲鹏需要自行编译(FT2000/Kunpeng 920 2426SK) 如果自己编译可以参考官网飞腾/鲲鹏下从源码编译-使用文档-PaddlePaddle深度学习平台 二…

深入理解神经网络:BP神经网络、ANN、多层感知机、多层编码器和多层线性层

这里写目录标题 深入理解神经网络:BP神经网络、ANN、多层感知机、多层编码器和多层线性层**人工神经网络(ANN)****多层感知机(MLP)****BP神经网络(反向传播神经网络)****多层编码器****多层线性…

Mysqld数据库管理

一.Mysqld数据库类型 常用的数据类型 int 整型 无符号[0-4294967296(2的32次方)-1],有符号[-2147483648(2的31次方)-2147483647]float单精度浮点 4字节32位double双精度浮点 8字节64位char固定长度的字符类型…

最新Springboot小程序医院核酸检测服务系统

采用技术 最新Springboot小程序医院核酸检测服务系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员页面 医护人员管理 普通管理员管理 接种进…

行车记录仪文件夹“0字节”现象解析与恢复策略

一、行车记录仪文件夹“0字节”现象描述 行车记录仪作为现代驾驶中的必备设备,其储存的视频数据对于事故记录和取证至关重要。然而,有时车主们可能会遇到这样一个问题:行车记录仪的某个文件夹内的文件突然变成了0字节大小,无法正…

Transformer的上下文学习能力是哪来的?

有理论基础,我们就可以进行深度优化了。 为什么 transformer 性能这么好?它给众多大语言模型带来的上下文学习 (In-Context Learning) 能力是从何而来?在人工智能领域里,transformer 已成为深度学习中的主导模型,但人们…

Python多语言欧拉法和预测校正器实现

📜流体力学电磁学运动学动力学化学和电路中欧拉法 📜流体力学电磁学运动学动力学化学和电路中欧拉法示例:Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路 ✒️多语言实现欧拉法和修正欧拉法 在数学和计算科学中,欧拉…

用群辉NAS打造影视墙(Video Station篇)

目录 一、群辉套件Video Station 1、安装 2、进入系统 3、配置刮削器 4、获取TMDB网站API密钥 5、配置DNS (1)开启SSH (2)使用终端工具连接到NAS (3)修改hosts文件 (4)再次测试连接 6、设置目录 二、手机端APP设置 三、电视端APP 四、解决影视信息错误 N…

数仓开发那些事_番外

一位神州的正式员工(没错,就是之前文章中出现的实习生):一闪,你今年涨工资了吗? 一闪:mad,一年辛苦到头只涨了500米 神州员工:你去年绩效不是优秀吗,怎么就涨…

洛杉矶裸机云服务器怎么用

洛杉矶裸机云服务器是一种结合了物理服务器性能和云服务灵活性的高性能计算服务。它为用户提供了高效、安全的计算和存储能力,特别适合需要大量数据处理和快速响应的应用。具体分析如下,rak部落小编为您整理发布洛杉矶裸机云服务器怎么用。 1. 硬件配置选…

openstack-同一物理机中透传不同GPU时的nova配置记录

文章目录 前言一、不同加速卡的型号信息二、计算节点增加配置信息1.nova-compute服务的nova.conf 三、控制节点增加配置信息1.nova-conductor服务的nova.conf2.nova-scheduler服务的nova.conf3.nova-api服务的nova.conf 四、准备实例模版五、进行测试,创建虚拟机、检…

从零开始:视频直播美颜SDK和API开发接入详解

在当今数字化时代,视频直播已经成为了社交媒体和在线娱乐的重要组成部分。而美颜功能作为视频直播的一个关键特性,可以显著提升用户体验,吸引更多观众参与。因此,了解如何从零开始开发和接入视频直播美颜SDK和API,对于…

领域驱动设计(DDD)微服务架构模式总结

part1. Domain Driven Design(Strategic Design,Tactical Design) Top Down focus on business or activityy domain Ubiquitous Language:统一语言 Tactical Design Tools:战术性设计工具 Implementing Domain Driven Design(Event storming,DDD in code) DDD总结…

mysql model_path longblob 类型文件操作

在 MySQL 中,如果你有一个表包含一个 LONG BLOB 类型的字段(例如 model_path),你可以使用 SQL 查询来提取该字段中的二进制数据,并将其下载为文件。以下是一个完整的步骤来实现这个过程: 步骤1:…

虚拟3D沉浸式展会编辑平台降低了线上办展的门槛

在数字化浪潮的引领下,VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光,凭借优质的服务和丰富的经验,赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战,许…

redis.conf 参数详解,方便进行性能优化配置

以下是redis.conf中一些常见参数的详细说明: daemonize:是否以后台进程运行,默认为no; pidfile:如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid;bind:绑定主…

微信小程序登录流程详情及Java代码

一、流程图 说明: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。 获取手机号,调用wx.getPhoneNumber() ,获取加密…

AI口语练习APP的开发流程

开发AI口语练习APP是一个持续的过程,需要多学科团队的紧密合作,包括产品经理、UI/UX设计师、前后端开发者、机器学习工程师、测试工程师和市场运营人员等。随着技术的发展和用户需求的变化,开发流程可能需要相应地进行调整和优化。AI口语练习…

【Python机器学习实战】 | 基于支持向量机(Support Vector Machine, SVM)进行分类和回归任务分析

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

zynq qspi启动、无SD卡、格式化分区emmc、调试全过程

1 背景 使用黑金开发板,全部开发流程避开使用SD卡调试,zynq开发过程中很多资料都是基于SD启动。这样就对新板卡调试带来了一定的困难,因为新板卡基本上没有设计SD卡。这里就一步一步实现qspi启动内核,格式化分区emmc,…