每日一题(PTAL2-006):树的遍历--树的构建,队列

因为要层序遍历,所以我们可以考虑构建一颗二叉树。构建完只有利用队列就可以就行层序遍历。

#include <bits/stdc++.h>
using namespace std;
int p1[35];
int p2[35];
typedef struct Tree {
    int val;
    struct Tree* left;
    struct Tree* right;
}TT;
typedef TT* TTT;
TTT add(int front1,int last1,int front2,int last2){
    TTT root=new TT;
    root->val=p1[last1];
    root->left=root->right=NULL;
    int p=front2;
    while(p2[p]!=p1[last1] ){
        p++;
    }
    int num=p-front2;
    if(p!= front2){
        root->left=add(front1,front1+num-1,front2,p-1);
    }
    if(p!= last2){
        root->right=add(front1+num,last1-1,p+1,last2);
    }
    return root;
}
void visit(TTT root){
    queue<TTT> Q;
    if(root){
    Q.push(root);
    }
    
    while(! Q.empty()){
        root=Q.front();
        Q.pop();
        cout<<root->val;
        if(root->left!=NULL){
            Q.push(root->left);
        }
        if(root->right!=NULL){
            Q.push(root->right);
        }
        if(! Q.empty()){
            cout<<' ';
        }
    }
    
}
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>p1[i];
    }
    for(int i=0;i<n;i++){
        cin>>p2[i];
    }
    TTT root=add(0,n-1,0,n-1);
    visit(root);
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙入门02-首次安装和配置

注&#xff1a;还没有安装编辑器&#xff08; deveco studio &#xff09;的小伙伴请看鸿蒙入门01-下载和安装-CSDN博客 首次安装配置 编辑器&#xff08; deveco studio &#xff09;安装完毕以后需要进入配置界面进行相关配置配置完毕以后才可以正常使用 环境配置&#xf…

微信小程序全局配置

全局配置文件及常用的配置项 小程序根目录下的 app.json 文件是小程序的全局配置文件。常用的配置项如下&#xff1a; ① pages 记录当前小程序所有页面的存放路径 ② window 全局设置小程序窗口的外观 ③ tabBar 设置小程序底部的 tabBar 效果 ④ style 是否启用新版的组件样…

MongoDB的CURD(增删改查操作)

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 ✈️如果喜欢这篇文章的话 &#x1f64f;大大们可以动动发财的小手&#x1f449;&#…

【IT运维入门(ITHW)系列】之「快速部署」第二期清单(持续更新)

ITHW是Information Technology Hello World的缩写简拼。意在提供IT领域的入门相关知识&#xff0c;近期给大家带来的是主流技术选型的快速部署系列&#xff0c;意在最大程度地简化部署过程&#xff0c;以便能快速体验或测试相关技术选型。 「快速部署」第一期清单 ITHW快捷部署…

Day 15 Linux网络管理

IP解析 IP地址组成&#xff1a;IP地址由4部分数字组成&#xff0c;每部分数字对应于8位二进制数字&#xff0c;各部分之间用小数点分开&#xff0c;这是点分2进制。如果换算为10进制我们称为点分10进制。 每个ip地址由两部分组成网络地址(NetID)和主机地址(HostID).网络地址表…

文件服务: txt文件预览乱码问题

文章目录 一、背景二、解决方案1、转换流&#xff08;解决代码与文件编码不一致读取乱码的问题&#xff09;2、获取文本文件的字符编码 一、背景 在springboot项目中使用springmvc web.resources的形式进行文件访问。本地上传txt文件编码格式为GB2312(中文简体)&#xff0c;浏…

大数据平台搭建2024(二)

二&#xff1a;Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

什么是漏洞?最全的漏洞分类!

01 — “ 什么是漏洞**”** 漏洞是指一个系统存在的弱点或缺陷&#xff0c;系统对特定威胁攻击或危险事件的敏感性&#xff0c;或进行攻击的威胁作用的可能性。漏洞可能来自应用软件或操作系统设计时的缺陷或编码时产生的错误&#xff0c;也可能来自业务在交互处理过程中的设…

14.C++常用的算法_排序算法

文章目录 遍历算法1. sort()代码工程运行结果 2. random_shuffle()代码工程运行结果第一次运行结果第二次运行结果第三次运行结果 3. merge()代码工程运行结果 4. reverse()代码工程运行结果 遍历算法 1. sort() 代码工程 sort()函数默认是升序排列&#xff0c;如果想要降序…

ChatGPT实用指南2024

随着ChatGPT技术的演进&#xff0c;越来越多的人开始在工作中利用此工具。以下是关于ChatGPT的实用指南&#xff0c;适合不太熟悉此技术的朋友参考。 一、ChatGPT概述 1. ChatGPT是什么&#xff1f; ChatGPT是基于OpenAI开发的GPT大型语言模型的智能对话工具。它能够通过自然语…

爆肝3k字!掌握Spring与Redis的高效交互:从Jedis到Spring Data Redis

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

B203-若依框架应用

目录 简介版本RuoYi-fast项目准备新增模块/代码生成 简介 基于SpringBoot的权限管理系统&#xff0c;基于SpringBoot开发的轻量级Java快速开发框架 版本 前后端未分离单应用版本&#xff1a;RuoYi-fast&#xff0c;前后端未分离多模块版本&#xff1a;RuoYi 前后端分离单应用…

06节-51单片机-LCD1602调试工具

欢迎订阅专栏&#xff0c;持续为您更新&#xff01; 1.LCD1602调试工具 使用LCD1602液晶屏作为调试窗口&#xff0c;提供类似printf函数的功能&#xff0c;可实时观察单片机内部数据的变换情况&#xff0c;便于调试和演示。 本文提供的LCD1602代码属于模块化的代码&#xff…

Java如何用EasyExcel插件对Excel进行数据导入和数据导出

文章目录 一、EasyExcel的示例导入依赖创建实体类数据导入和导出 二、EasyExcel的作用三、EasyExcel的注解 EasyExcel是一个阿里巴巴开源的excel处理框架&#xff0c;它以使用简单、节省内存著称。在解析Excel时&#xff0c;EasyExcel没有将文件数据一次性全部加载到内存中&…

如果补货机器人也开始搬砖

过去几年&#xff0c;如果一位顾客的欲购商品疑似缺货&#xff0c;“请稍等&#xff0c;我去后台查一下”便是最常听到的一句话。随着过去几年劳动力短缺的加剧&#xff0c;货架并不总像许多人习惯的那样满满当当。为减轻不断补货的负担&#xff0c;使员工可以将精力集中于其他…

【AI工具】AI一键生成思维导图

ChatMind 被 Xmind 收购之后&#xff08;即那个 00 后团队&#xff09;&#xff0c;将重点聚焦于海外市场&#xff0c;国内职场用户可对其予以关注&#xff0c;用户体验着实不错&#xff08;我认为 AI 生成思维导图&#xff0c;其关键点在于交互与 UI&#xff09;&#xff1a; …

05节-51单片机-模块化编程

1.两种编程方式的对比 传统方式编程&#xff1a; 所有的函数均放在main.c里&#xff0c;若使用的模块比较多&#xff0c;则一个文件内会有很多的代码&#xff0c;不利于代码的组织和管理&#xff0c;而且很影响编程者的思路 模块化编程&#xff1a; 把各个模块的代码放在不同的…

【javaWeb 第七篇】后端-Spring

Spring SpringspringBoot请求简单参数实体参数数组集合参数日期参数JSON参数路径参数 响应数据分层解耦三层架构解耦操作Bean的声明Bean组件扫描问题DI详解 Spring 详细介绍结合官网查看&#xff1a;https://spring.io/why-spring Spring发展到今天已经形成一种开发生态圈&…

浅谈CAP原则

CAP原则&#xff0c;全称Consistency&#xff08;一致性&#xff09;、Availability&#xff08;可用性&#xff09;、Partition Tolerance&#xff08;分区容错性&#xff09;原则&#xff0c;是分布式系统设计中一个经典的理论。它指出在分布式系统中&#xff0c;任何系统都无…

基于HEC-RAS数值模拟与GIS水文分析技术的洪水危险性及风险评估实践应用

气候变化背景下&#xff0c;极端天气导致的洪水事件将更加频发。快速城市化对流域下垫面的改变&#xff0c;及人类活动向洪泛区的扩张。二者共同使得全世界多数人类活动高度聚集区的洪水风险增加。洪水淹没危险性&#xff08;各种年遇型洪水淹没&#xff09;是洪水损失评估、风…