多叉树OJ思路 ,无代码

news2025/1/21 20:26:59

也是第一次写森林树,确实不是很拿捏,受二叉树的影响太多了;你会发现这个多叉树一般不建链式结构的,都是数组式的比如“双亲表示法”,让子节点可以找到父节点这样。

有疑问欢迎交流,作者我也是蒟蒻,每个月都会在线吧doge

大部分都是我组长讲的方法,挺系统的(毕竟前几个题都是邻接表做,非常香)

除了题目都是思路哦

1.邻接表

【id:188】【20分】A. 树的先序遍历(双亲转先序)

时间限制1s

内存限制128MB

题目描述

给出一棵树的双亲表示法结果,用一个二维数组表示,位置下标从0开始,如果双亲位置为-1则表示该结点为根结点

编写程序,输出该树的先根遍历结果。

输入

第一个输入t,表示有t棵树

接着每棵树输入3行:

第1行输入n,表示树有n个结点

第2行输入n个英文字母,表示每个树结点的数值

第3行输入n个整数,表示每个结点的双亲在数组的下标

以此类推输入下一棵树

输出

共输出t行,每行输出一棵树的先根遍历结果

方法:

2.和第一题用一个方法

【id:187】【20分】B. 树的后根遍历(孩子链表法)

时间限制1s

内存限制128MB

题目描述

根据树的孩子链表表示法构建一棵树,并输出树的后根遍历

下标位置从0开始

输入

第一行输入两个参数,第一个参数n表示树有n个结点,第二个参数r表示根结点的数组下标

接着n行,每行先输入一个结点的数值(用单个字母表示),再输入结点的孩子的下标,最后以-1结尾

如果该结点没有孩子,则一行只输入结点的数值和-1

输出

只有一行输出,树的后根遍历结果

 3.看清楚题是二叉树,然后可以试着写写数组表示的

【id:186】【20分】C. 树结构转换(先序转双亲)

时间限制1s

内存限制128MB

题目描述

给出一棵二叉树的特定字符先序遍历结果(空子树用字符'#'表示),构建该二叉树,并输出该二叉树的双亲表示法结果

双亲表示法的数组下标从0开始,根结点必定是在下标0元素,且根结点的双亲下标为-1,左右孩子按下标递增顺序排列,

结点下标是层次遍历顺序。

输入

第一个输入t,表示有t棵二叉树

接着t行,每行输入含特定字符的二叉树先序遍历序列

输出

共输出2t行

每棵二叉树输出两行,第一行输出各个结点的数值,第二行输出各结点的双亲下标

大神的数组表示二叉树:

我自己就是建的二叉树,然后两个队列一层层的输出

(一开始用的栈发现错了,所以队列的名字是st)

两个队列的代码:一个队列装着一层树,然后一个个出,队列的时候把子树压入到另一个队列

(突然发现一个队列就可以完成题目任务,不过两个队列可以把层弄清楚)

4.邻接表直接做

【id:381】【20分】D. 树的双亲结构转孩子链表结构

时间限制1s

内存限制128MB

题目描述

给出一棵树的双亲表示法结果,用一个二维数组表示,位置下标从0开始,如果双亲位置为-1则表示该结点为根结点

编写程序,输出该树的孩子链表表示法结果。

输入

输入一棵树的双亲表示法,共3行:

第1行输入n,表示树有n个结点

第2行输入n个英文字母,表示每个树结点的数值

第3行输入n个整数,表示每个结点的双亲在数组的下标

输出

按输入的结点顺序输出n行,每行输出结点孩子链表结果,先输出结点的数值,再输出结点的孩子的下标,以空格隔开,最后一个数据后面也有空格

如果链表为空则输出结点数值后,输出-1带空格,具体看样式

6.最好好好想想DFS,就弄层呗

【id:200】【10分】F. 先序+中序还原二叉树

时间限制1s

内存限制128MB

题目描述

给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。

输入

输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。

输出

输出为一个整数,即该二叉树的高度。

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

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

相关文章

精进·第2篇:分享一个3-5年战略规划框架思路

首发:麦子禾咨询 作者:石头 前几天,石头分享过一个简单的战略规划框架思路,本篇,石头打算再分享一个相对复杂的3-5年战略规划框架思路。 每种战略规划框架思路,都有其局限性,有些受限于行业属…

MySQL 外连接和内连接的查询优化怎么做?

目录 1. 表连接方式的分类和需要注意的细节 2. 表连接时底层做了什么事? 3. 左外连接优化方案 4. 内连接优化方案 1. 表连接方式的分类和需要注意的细节 多表连接查询,大体上可以分为内连接与外连接。 内连接的意思就是把两个表有关联的部分都取出…

二叉树进阶 - (C++二叉搜索树的实现)

二叉树进阶 - (二叉搜索树的实现) 二叉搜索树1. 二叉搜索树概念2. 二叉搜索树操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除(重点) 3. 二叉搜索树的(代码)实现 二叉搜索树 1. 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0…

MySQL是如何优化in子查询的?

目录 前言 一、普通in子查询 二、物化表 三、SQL优化 四、IN语句的优化方式 1. 使用子查询代替IN查询 2. 使用JOIN代替IN查询 3. 使用EXISTS代替IN查询 4. 使用索引优化IN查询 5. 优化查询语句 总结 前言 对于很多的开发小伙伴来说,在MySQL中进行in子查…

Antlr4学习笔记

目录 背景 相关概念 流程说明 入门示例 简易计算器 环境准备 开发 java8方法提取 语法规则 常用的语法要点 设计语法 序列模式 选择模式 词法符号依赖 嵌套模式 总结 参考资料 背景 在阅读shardingjdbc-4.1.1代码时,发现一段sql解析的逻辑&#x…

极智开发 | H100服务器的庐山真面目

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 H100服务器的庐山真面目。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq H100 是英伟达最强显卡,当然其实也…

stable-diffusion 电商领域prompt测评集合

和GhostReivew一个思路,还是从比较好的图片或者是civitai上找一些热门的prompt,从小红书上也找到了不少的prompt,lexica.art上也有不少,主要是为了电商场景的一些测评: 小红书、civitai、Lexica、Liblib.ai、 depth o…

基于GEE云平台一种快速修复Landsat影像条带色差的方法

这是之前关于去除遥感影像条带的另一篇文章,因为出版商推迟了一年发布,所以让大家久等了。这篇文章的主要目的是对Landsat系列卫星因为条带拼接或者镶嵌产生的条带来进行的一种在线修复方式。 原文连接 一种快速修复Landsat影像条带色差的方法 题目&a…

app开发之后需要做什么

在完成app的开发之后,还有一系列的工作需要进行,以确保app的顺利上线和用户的良好体验。下面将从原理和详细介绍两个方面来介绍app开发之后需要做的工作。 一、原理介绍 1. 测试与调试:在app开发完成后,需要进行全面的测试与调试…

防范欺诈GPT

去年,ChatGPT的发布让全世界都感到惊讶和震惊。 突然间出现了一个平台,它比之前的任何其他技术都更深入地了解互联网。人工智能可以被训练成像阿姆一样说唱,以世界著名诗人的风格写作,并精确地翻译内容,以至于它似乎能…

初识Vue 解决vue在启动时生成的提示

让我为大家简单介绍一下吧&#xff01; Vue是一套用于构建用户界面的渐进式javaScript框架 当我们引入vue.js后 <script src"../js/vue.js"></script>我们发现&#xff0c;当我们打开网页时&#xff0c;控制台会出现以下内容 那我们该怎么解决呢&…

思科网络基础

目录 一、特殊的ip地址 1.一些基本概念 2.私有地址 3.子网划分 4.VLSM&#xff08;可变长子网掩码&#xff09; 5.CIDR&#xff08;无类域间路由-超网&#xff09; 二、IP头和一些基本概念 1.ip头 2.mtu 3.免费arp 一、特殊的ip地址 1.一些基本概念 网络位不变&…

卡尔曼家族从零解剖-(04)贝叶斯滤波→细节讨论,逻辑梳理

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…

玩转AIGC:如何选择最佳的Prompt提示词?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Spring、SpringMVC、Mybatis

一.Spring基础 1.Spring 框架是什么 Spring 是一款开源的轻量级 Java 开发框架&#xff0c;我们一般说 Spring 框架指的都是 Spring Framework&#xff0c;它是很多模块的集合&#xff0c;例如&#xff0c;Spring-core、Spring-JDBC、Spring-MVC 等&#xff0c;使用这些模块可…

Vite 的基本原理,和 webpack 在开发阶段的比较

目录 1&#xff0c;webpack 的流程2&#xff0c;Vite 的流程简单编译 3&#xff0c;总结 主要对比开发阶段。 1&#xff0c;webpack 的流程 开发阶段大致流程&#xff1a;指定一个入口文件&#xff0c;对相关的模块&#xff08;js css img 等&#xff09;先进行打包&#xff0…

【MySql】11- 实践篇(九)

文章目录 1. 大查询是否会把数据库内存打爆?1.1 全表扫描对 server 层的影响1.2 全表扫描对 InnoDB 的影响 2. 可不可以使用join?2.1 Index Nested-Loop Join2.2 Simple Nested-Loop Join2.3 Block Nested-Loop Join 3. join语句怎么优化?3.1 Multi-Range Read 优化3.2 Batc…

安装Oracle 11g Error in invoking target报错

在redhat7.5上安装Oracle 11g&#xff0c;安装过程中到86%时出现Error in invoking target报错 原因是由于操作系统版本过高&#xff0c;导致lib链接报错 [oracleemrtest ~]$ cd O R A C L E H O M E / s y s m a n / l i b / [ o r a c l e e m r t e s t l i b ] ORACLE…

没有PDF密码,如何解密文件?

PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。想要解密&#xff0c;我们需要输入正确的密码&#xff0c;但是有时候我们可能会出现忘记密码的情况&#xff0c;或者网上下载P…

canvas制作电子白板签名功能

Canvas是html5主要的画图工具&#xff0c;用户可以利用js在里面构思自己的创意&#xff0c;页面上很多手写签名是通过这个来完成的&#xff0c;让我们来用一个简单的例子作为抛砖引玉。 效果图 源代码 <html> <head> <meta charset"utf-8"> &l…