【树的存储结构,孩子链表】

news2024/11/25 16:21:42

文章目录

  • 树和森林
    • 树的存储结构
    • 孩子链表

树和森林

森林:是m(m>=0)棵互不相交的树的集合。
在这里插入图片描述
在这里插入图片描述

树的存储结构

1.双亲表示法
实现:定义结构数组存放树的结点,每个结点含两个域。
数据域:存放结点本身信息。
双亲域:指示本结点的双亲结点在数组中的位置。
在这里插入图片描述
表示出来就是:
在这里插入图片描述
特点:找双亲容易,找孩子难。
在这里插入图片描述

#define TElemType int
#define MAX_TREE_SIZE 100

//定义
typedef struct PTNode {
	TElemType data;
	int parent;//双亲域位置
}PTNode;

//树结构
typedef struct {
	PTNode nodes[MAX_TREE_SIZE];
	int r, n;//根结点的位置和结点个数
}PTree;

孩子链表

把每个结点的孩子结点排列起来,看成是一个线性表,用单链表存,则n个结点有n个孩子链表(叶子的孩子链表为空表)。而n个头指针又组成一个线性表,用顺序表(含n个元素的结构数组)存储。
在这里插入图片描述

//树结构
typedef struct {
	PTNode nodes[MAX_TREE_SIZE];
	int r, n;//根结点的位置和结点个数
}PTree;

//孩子结点
typedef struct CTNode {
	int child;
	struct CTNode* next;
}*ChildPtr;

//双亲结点
typedef struct {
	TElemType data;
	ChildPtr firstchild;//孩子链表头指针

}CTBox;

带孩子的双亲链表
在这里插入图片描述

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

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

相关文章

如何设计vue项目的权限管理?

权限管理的重要性及必要性 数据安全:权限管理可以确保只有具有相应权限的用户能够访问和操作特定的数据。这可以保护敏感数据不被未授权的用户访问,从而提高数据的安全性。功能控制:权限管理可以根据用户的角色和权限设置,控制用户…

Ansible自动化运维工具(常用模块与命令)

ansible基于Python开发,实现了批量系统配置,批量程序部署,批量运行命令等功能 ansible特点 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;默认使用ssh协议对设备进行管理;有大…

SPASS-交叉表分析

导入数据 修改变量测量类型 分析->描述统计->交叉表 表中显示行、列变量通过卡方检验给出的独立性检验结果。共使用了三种检验方法。上表各种检验方法显著水平sig.都远远小于0.05,所以有理由拒绝实验准备与评价结果是独立的假设,即认为实验准备这个评价指标是…

DehazeNet: An End-to-End System for Single Image Haze Removal(端到端的去雾模型)

1、论文去雾总体思路 DehazeNet是2016年华南理工大学的研究者提出的一个端到端的深度学习模型,该模型主要通过输入的原始有雾图像拟合出该图所对应的medium transmission map(透射率t值图),并使用引导滤波对t值进行refine&#x…

SpringCloud - OpenFeign 参数传递和响应处理(全网最详细)

目录 一、OpenFeign 参数传递和响应处理 1.1、feign 客户端参数传递 1.1.1、零散类型参数传递 1. 例如 querystring 方式传参 2. 例如路径方式传参 1.1.2、对象参数传递 1. 对象参数传递案例 1.1.3、数组参数传递 1. 数组传参案例 1.1.4、集合类型的参数传递&#xf…

PHP+MySQL人才招聘小程序系统源码 带完整前端+后端搭建教程

在当今竞争激烈的人才市场中,招聘平台的需求日益增长。传统的招聘平台往往需要投入大量的人力物力进行维护和管理,这对于许多中小企业来说是一个沉重的负担。因此,开发一个简单易用、高效便捷的招聘平台显得尤为重要。 PHP是一种流行的服务器…

通过docker-compose部署elk日志系统,并使用springboot整合

ELK是一种强大的分布式日志管理解决方案,它由三个核心组件组成: Elasticsearch:作为分布式搜索和分析引擎,Elasticsearch能够快速地存储、搜索和分析大量的日志数据,帮助用户轻松地找到所需的信息。 Logstash&#xf…

逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)(附代码)

代码原理 逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)是一种用于信号处理和数据分析的方法。它可以将复杂的信号分解为一系列模态函数,每个模态函数代表了信号中的一个特定频率成分。SVMD的主要目标是提取…

【每日一题】咒语和药水的成功对数

文章目录 Tag题目来源解题思路方法一:排序二分 写在最后 Tag 【排序二分】【数组】【2023-11-10】 题目来源 2300. 咒语和药水的成功对数 解题思路 方法一:排序二分 我们首先对 points 进行升序排序,然后枚举 spells 中的 x,需…

持续集成交付CICD:安装Gitlab Runner(从节点)

目录 一、实验 1.选择Gitlab Runner版本 2.安装Gitlab Runner(第一种方式:交互式安装) 3.安装Gitlab Runner(第二种方式:非交互式安装) 二、问题 1.如何查看Gitlab版本 一、实验 1.选择Gitlab Runne…

如何用Excel软件制作最小二乘法①

一、用自带的选项(不推荐),因为感觉只是近似,虽然结果一样 1.在Excel中输入或打开要进行在excel中输入或打开要进行最小二乘法拟合的数据,如图所示。 2.按住“shift”键的同时,用鼠标左键单击以选择数据&a…

android手机平板拓展电脑音频

(1)首先确保电脑上有声卡,就是电脑右下角小喇叭能调音量,不管电脑会不会响,如果小喇叭标记了个错误,说明没有声卡,安装图上的虚拟声卡软件。 (2)图上第一个PC免安装及局…

Code Review最佳实践

Code Review最佳实践 Code Review 我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review都是基本要求&…

07、SpringBoot+微信支付 -->处理超时订单(定时查询、核实微信支付平台的订单、调用微信支付平台查单接口、更新本地订单状态、记录支付日志)

目录 Native 支付处理超时订单定时的讲解需求分析代码定时任务:WxPayTask定时查询的方法:核实订单状态等操作 :WxPayServiceImpl查单接口方法:queryOrder更新本地订单状态:updateStatusByOrderNo记录支付日志&#xff…

tqdm学习

from tqdm import tqdmepochs 10 epoch_bar tqdm(range(epochs)) count 0 for _ in epoch_bar:count count1print("count {}".format(count))print(_)每次就是一个epoch

CSDN每日一题学习训练——Java版(克隆图、最接近的三数之和、求公式的值)

版本说明 当前版本号[20231109]。 版本修改说明20231109初版 目录 文章目录 版本说明目录克隆图题目解题思路代码思路参考代码 最接近的三数之和题目解题思路代码思路参考代码 求公式的值题目解题思路代码思路参考代码 克隆图 题目 给你无向 连通(https://baike.baidu.com…

电商项目之Java8函数式接口落地实践

文章目录 1 问题背景2 前言3 多处重复的重试机制代码4 优化后的代码5 进一步优化 1 问题背景 在电商场景中,会调用很多第三方的云服务,比如发送邮件、发起支付、发送验证码等等。由于网络存在抖动,有时候发起调用后会拿到500的状态码&#xf…

Visual Studio2022安装教程【图文详解】(大一小白)编译软件

工欲善其事,必先利其器。想要学好编程,首先要把手中的工具利用好,今天小编教一下大家如何下载安装并使用史上最强大的编译器--Visual Studio🍗 一.Visual Studio下载及安装 https://visualstudio.microsoft.com/ 打开文件 点击.ex…

Halcon的相机内参外参的标定

halcon标定相机内参只能使用方向标定板和圆点标定板。并且方向标定板可也可用性极高。 1.打开halcon的标定助手,选择标定板的描述文件,填写标定板的厚度,根据相机选择像元的尺寸和镜头的焦距。如果已有相机内参,只标定外参&#…

使用ESP8266构建家庭自动化系统

随着物联网技术的不断发展,家庭自动化系统变得越来越受欢迎。ESP8266是一款非常适合于构建家庭自动化系统的WiFi模块。它小巧、低成本,能够实现与各种传感器和执行器的连接,为家庭带来智能化、便利化的体验。在本篇文章中,我们将向…