5.4树,森林

news2024/11/14 18:41:34

5.4.1树的存储结构

可采用顺序存储结构or链式存储结构

要求能唯一的反映树中各节点之间的逻辑

1.双亲表示法

采用一端连续的空间来存储,同时在每个节点中增设一个伪指针,指示双亲节点在数组中的下标

优点:找双亲节点方便,找孩子不方便

attention:由于根节点无双亲节点,所以其双亲节点的坐标为-1;

双亲表示法的存储结构代码如下:

#include<stdio.h>;
#define maxsize 100
typedef struct {
	int data;//存储数据
	int parent;//双亲位置域
}PTnode;
typedef struct {
	PTnode nodes[maxsize];//双亲表示
	int n;//节点数
}PTree;

2.孩子表示法

将每个节点的孩子节点视为一个线性表

优点:找孩子方便,找双亲节点不方便

3.孩子兄弟表示法

孩子兄弟表示法又称二叉树表示法,以二叉链表作为树的存储结构

孩子兄弟表示法存储代码如下:

#include<stdio.h>;
typedef struct CSnode
{
	int data;//定义数据
	CSnode* firstnode, * nextsibling;//第一个孩子和右兄弟指针
}CSnode;

5.4.2树,森林与二叉树的转换

1.树转化为二叉树

2.森林转换为二叉树

3.二叉树转化为森林

5.4.3树和森林的遍历

1.树的遍历

先跟遍历与其对应的二叉树先序序列相同

后跟遍历与其对应二叉树的中序序列相同

2.森林的遍历

先序遍历森林与其对应的二叉树先序序列相同

后序遍历森林与其对应二叉树的中序序列相同

 

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

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

相关文章

C++:关于反向迭代器的学习分享

前言&#xff1a; 小编仅是一位初学者&#xff0c;所以对于C的理解有限&#xff0c;文章大概率会出现表达不清楚可能也只是因为小编不知道如何更好表达&#xff0c;本文章仅作为一个学习的总结分享。 反向迭代器的概念 反向迭代器故名思意解释反向的迭代器&#xff0c;与正向迭…

地铁X光危险品检测数据集

地铁X光危险品检测数据集介绍 数据集概览 本数据集旨在为地铁X光安检系统提供高质量的危险品检测训练素材。数据集包含18类常见危险品&#xff0c;总共6265张图像&#xff0c;每张图像均经过精心标注&#xff0c;确保了数据的质量和一致性。数据集适用于多种格式&#xff08;Y…

Spring优缺点和SpringBoot基础和搭建

前言 Spring框架是一个流行的Java企业级开发框架&#xff0c;旨在简化应用程序开发。它的核心特性包括依赖注入和面向切面编程&#xff0c;提供了灵活性和强大的社区支持。然而&#xff0c;Spring也存在学习曲线陡峭和配置复杂等缺点。 Spring Boot是基于Spring的项目&#x…

2024年高教社杯数学建模竞赛须知——三大注意事项

为了让大家在最后一天更好的备注国赛&#xff0c;我们今日将结合2024年国赛的新规给大家讲解国赛中三大主要的事项&#xff1a; 论文模版问题——国赛乃至大部分数模竞赛从来没有给出任何的论文模版&#xff0c;大部分的模版均为一次又一次学生、老师内部传播形成。资料使用问…

文件包含PHP伪协议利用方法

首先我们需要把配置文件php.ini 在 php.ini ⾥有两个重要的参数 allow_url_fopen 、allow_url_include&#xff1b; allow_url_fopen:默认值是 ON。允许 url ⾥的封装协议访问⽂件&#xff1b; allow_url_include:默认值是 OFF。不允许包含 url ⾥的封装协议包含⽂件&#x…

深度学习-VGG16原理和代码详解

VGG16 原理和代码详解 VGG16 是由牛津大学的 Visual Geometry Group (VGG) 提出的深度卷积神经网络&#xff0c;发表于 2014 年的论文 “Very Deep Convolutional Networks for Large-Scale Image Recognition”。VGG16 是其中的一种结构&#xff0c;由 16 层网络组成&#xf…

win系统安装mysql,使用mysqldump,pycharm使用mysqldump,避坑

文章目录 下载mysql的win客户端设置系统环境变量验证是否可用pycharm使用mysqldump异常问题排查 下载mysql的win客户端 官网下载地址如果下载旧版本&#xff0c;需自行到Archives里面找 本人使用的是mysql5.7&#xff0c;找到相应版本后&#xff0c;点击Download下载 设置系统…

Docker入门笔记

Docker 文章目录 Docker1. 下载 &#xff08;centos&#xff09;2. 部署 MySQL3. 常用命令4. 数据卷5. 自定义镜像6. Java 项目部署 1. 下载 &#xff08;centos&#xff09; 卸载旧版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-lates…

个人旅游网(3)——功能详解——旅游路线功能

文章目录 一、旅游路线分类功能1.1、接口详解1.1.1、findAll 二、路线分类下的旅游路线功能2.2、接口详解2.2.1、findRouteListByCid 三、点击单条旅游路线查看其详情功能3.1、接口详解3.1.1、findRouteListByRid 四、分页功能4.1、导入依赖4.2、配置项的配置4.3、实现分页 一、…

Zotero tags(action and tags for zotero)怎么使用

先在下面的网址安装action and tags for zotero&#xff1a; https://github.com/windingwind/zotero-actions-tags 视频讲解&#xff1a; Zotero Tag -> Actions and Tags for Zotero - 远不止标签管理&#xff01;_哔哩哔哩_bilibili 使用方法&#xff1a; 找到一些表情…

Linux驱动(四):Linux2.6字符设备驱动及GPIO子系统

目录 前言一、Linux2.6字符设备驱动的编写1.设备号2.注册设备号3.释放设备号4.核心结构体5.设备相关的 API 函数6.自动创建设备节点 二、GPIO 子系统1.申请所需gpio口资源2.释放gpio口资源3. 配置 gpio 口的工作模式4.获取gpio口的电平状态5.设置 gpio 的电平状态 三、目标实现…

路由引入(ospf+rip)

1.搭建拓扑图 2.配置接口ip地址

IO进程(线程篇)

知识点链接 https://www.yuque.com/aihenaobaijin/camuoq/lscmvf6z1arklau4?singleDoc# 《IO进程》 建议先学习知识点&#xff0c;再进行下面的练习 线程 概念 线程是一个轻量级的进程&#xff0c;为了提高系统的性能引入线程 线程和进程是参与统一的调度 在同一个进程中可…

【RSA】简单说说什么是RSA非对称加密

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是非对称加密2.1 常见的非对称加密有哪些&#xff1f;2.2 哪些场景适合使用…

渗透测试靶机---- DC系列 DC-4

渗透测试靶机---- DC系列 DC-4 开启靶机&#xff0c;登录页面&#xff0c;平平无奇 扫描ip 端口&#xff0c;服务等信息 访问80 登录窗&#xff01;&#xff01;&#xff01; 这里说明了admin信息&#xff0c;那么就直接爆破这个admin的密码 密码&#xff1a;happy 登录成功 在…

64位Office API声明语句第001讲

跟我学VBA&#xff0c;我这里专注VBA, 授人以渔。我98年开始&#xff0c;从源码接触VBA已经20余年了&#xff0c;随着年龄的增长&#xff0c;越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友&#xff0c;都来学习VBA,利用VBA,起码可以提高…

华为云征文|使用sysbench对Mysql应用加速测评

文章目录 ❀前言❀测试环境准备❀测试工具选择❀测试工具安装❀mysql配置❀未开启Mysql加速测试❀开启Mysql加速测试❀总结 ❀前言 大家好&#xff0c;我是早九晚十二。 昨天有梳理一篇关于华为云最新推出的云服务器产品Flexus云服务器X。当时有说过&#xff0c;这次的华为云F…

0.3 学习Stm32经历过的磨难

文章目录 用库函数传参 能否按位或STM32库函数XXX_GetFlagStatus和XXX_GetITStatus的区别 用库函数传参 能否按位或 答案是看清况&#xff0c;而不是一股脑的写&#xff01;&#xff08;血泪的经验啊&#xff09; 可行的情况&#xff1a; //如gpio初始化结构体中的gpiopin参…

坐牢第三十四天(c++)

一.作业 1.栈的手写 #include <iostream> using namespace std; // 封装一个栈 class stcak { private:int *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参构造函数stcak(int size);// 拷贝构造函数stcak(const s…

Linux调试器-gdb的使用

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 1.前置知识 程序的发布方式一般有两种&#xff0c;deb…