【堆的使用】【dfs构建数】二叉树遍历

news2024/11/26 3:24:26

二叉树遍历

        • 方法一:
        • 方法二:利用堆的性质

原题链接

方法一:

利用dfs构建树

因为这个前序遍历给了我们空的叶节点
所以我们可以只根据叶节点 构建树

abc##de#g##f###
在这里插入图片描述
构建图如下

我们根据前序
abc##de#g##f###

发现 dfs左子树 和 右子树
当出现#返回输出该父节点

继续递归右子树【但是我们发现如果继续递归右子树,得到的k还是左子树的位置的k】

所以我们在发现#时,需要将k++再返回具体如下代码

#include<iostream>

using namespace std;

string s;
int k;

void dfs()
{
    if(s[k]=='#')
    {
        k++;
        return;
    }
    char ss = s[k++];
    
    dfs();
    cout << ss << ' ';
    dfs();
}

int main()
{
   
    cin >> s;
    
    dfs();
    
    return 0;
}

方法二:利用堆的性质

abc##de#g##f###
我们根据样例发现
遍历字符串,每次入堆
当出现#时,输出堆顶元素即可就是 中序遍历

#include<iostream>
#include<stack>

using namespace std;

string s;
stack<char> st;

int main()
{
    cin >> s;
    
    for(int i = 0; i < s.size(); i++)
    {
        if(s[i]=='#' && st.size())
        {
            cout << st.top() << ' ';
            st.pop();
            continue;
        }
        if(s[i]!='#')
        {
            st.push(s[i]);
        }
    }
    
    return 0;
}

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

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

相关文章

mac系统下使用clion调试redis源码

获取源代码 有两种方式&#xff0c;第一种是从官网下载 Redis 源码压缩包&#xff0c;如图 1-1 所示。 图1-1 将压缩包解压得到一个文件夹。 第二种方式&#xff0c;通过 git clone 获取源码。 从 Github 上&#xff0c;使用 git clone https://github.com/redis/redis.git…

第1章-JVM与Java体系结构

1、本系列博客&#xff0c;主要是面向Java8的虚拟机。如有特殊说明&#xff0c;会进行标注。 2、本系列博客主要参考尚硅谷的JVM视频教程&#xff0c;整理不易&#xff0c;所以图片打上了一些水印&#xff0c;还请读者见谅。后续可能会加上一些补充的东西。 3、尚硅谷的有些视频…

业务转包?行为不可控?企业外包如何保护数据安全?

出于人力、设备、开发成本等各种因素考虑&#xff0c;企业会把一部分业务外包出去&#xff0c;比如AI数据标注外包、IT外包、银行部分业务外包等。同时&#xff0c;随着企业不断向外包业务转移&#xff0c;保护数据安全和隐私已成为企业最为关注的问题之一。 来自国外的一份报告…

1.16 从0开始学习Unity游戏开发--人物控制

上一篇我们简单的做了一个玩家不动的情况下&#xff0c;如何控制准心来射击子弹&#xff0c;但是显然正常的游戏需要移动玩家本体&#xff0c;所以本篇我们需要补全这部分玩法所需的功能。 人物移动 在我们之前的篇章里面&#xff0c;讲解了如何通过物理引擎来实现物体的物理…

(学习日记)2023.4.11

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

360虚拟数字展厅vr全景展示实现高度开放空间的深度体验

随着VR虚拟现实技术的不断发展和普及&#xff0c;线上VR全景虚拟展厅逐渐成为了各行各业的展示和推广产品的重要手段之一。相比于传统的展览方式&#xff0c;线上VR全景虚拟展厅打破了许多传统展览的局限性 传统局限性&#xff1a; 1、重体验过于依赖线下&#xff0c;难以实现转…

CloudCompare如何使用基础功能?

文章目录0.引言1.File2.Edit3.Tools4.Display5.Plugins6.3D Views0.引言 CloudCompare是一款优秀的开源点云处理软件&#xff0c;在研究点云的过程中&#xff0c;会用到其中一些点云处理功能。为快速熟悉软件的基础功能&#xff0c;本文介绍相应的功能按键的作用。    1.Fil…

Nginx专题-基于多网卡的主机配置

文章目录Nginx 基于多网卡的主机实现一、虚拟机前置环境准备ifcfg-ens32配置文件的内容参考ifcfg-ens33配置文件的内容二、案例演示修改nginx.conf配置文件解决中文乱码Nginx 基于多网卡的主机实现 一、虚拟机前置环境准备 点击虚拟机右下角的 红色标框按钮&#xff0c;然后右键…

【GC垃圾回收算法】让内存垃圾无处藏身

文章目录概述垃圾对象的判定引用计数可达性分析回收垃圾标记清除复制算法标记整理分代回收概述 垃圾回收就是帮我们把不用的内存垃圾自动释放掉 什么是垃圾呢&#xff1f;就是指不再使用的垃圾 如果不进行垃圾回收就会导致一个严重的问题&#xff0c;内存泄漏 内存泄漏&#x…

【id:34】【20分】D. Point_Array(类+构造+对象数组)

题目描述 上面是我们曾经练习过的一个习题&#xff0c;请在原来代码的基础上作以下修改&#xff1a;1、增加自写的析构函数&#xff1b;2、将getDisTo方法的参数修改为getDisTo(const Point &p)&#xff1b;3、根据下面输出的内容修改相应的构造函数。 然后在主函数中根据…

HTTP伪造

打开后是一个精美的页面&#xff0c;再精美也没啥用&#xff0c;先查看源码吧可以看到这里有个点击触发的a标签&#xff0c;点进去后提示我不来自https://Sycsecret.buuoj.cn&#xff0c;结合题目是HTTP&#xff0c;立刻就想到了HTTP请求头伪造抓包&#xff0c;本身是没有Refer…

ActiveMQ使用(一):在JavaScript中使用stomp.js

ActiveMQ使用(一):在JavaScript中使用stomp.js 1. 环境准备 jQuery-1.10 下载地址:https://www.jsdelivr.com/package/npm/jquery-1.10.2?tabfilesstomp.js 2.3.3: 下载地址:https://www.jsdelivr.com/package/npm/stompjs 2. 相关代码 <!DOCTYPE html> <html l…

东用科技路由器连接上云助手配置指导手册

一、上云助手操作步骤1.安装“Device control center”并启动。2.点击“服务器设置”后设置端口号&#xff1a;1-65535&#xff0c;传输协议&#xff1a;TCP/UDP。##路由推送功能默认不勾选。其功能为将填写的远端子网及掩码信息推送给客户端&#xff0c;客户端就会生成一条目的…

java反序列化 cc链1 分析

这里我是跟白日梦组长学习&#xff0c;果然大佬就是大佬&#xff0c;讲的是真好&#xff0c;按他的配置&#xff0c;我们来配置环境。 环境搭建 环境&#xff1a; java&#xff1a;java8u_65 commons-collections&#xff1a;3.2.1 这里逛了很多圈&#xff0c;说实在的真的没有…

融云出海赋能会干货回顾 | 用户增长、场景玩法、安全合规实用指南

近期&#xff0c;“纵浪潜海 2023 融云社交泛娱乐出海赋能会”在上海、广州相继举行。移步【融云全球互联网通信云】&#xff0c;回复【出海】获取PPT。 作为更专业的出海服务商&#xff0c;融云联合多家出海服务企业&#xff0c;从热门出海地区的特性洞察、玩法解决方案、技…

BGP过滤(社团属性过滤器、AS路径过滤器)

通过路由策略来过滤 [r2]ip ip-prefix aa permit 172.16.1.0 24 [r2]route-policy aa deny node 10 [r2-route-policy]if-match ip-prefix aa [r2]route-policy aa permit node 20 [r2]bgp 200 [r2-bgp]peer 10.1.23.3 route-policy aa export 前缀列表进行过滤 [r3]ip ip-pref…

新手使用Python开发游戏pygame入门很合适-02

前面一篇博文&#xff0c;我们让飞机动起来了&#xff0c;但不是那么完美&#xff0c;我们继续来完善我们的游戏代码&#xff0c;本篇博文主要介绍获取按键的方式已经飞行速度的控制。 文章目录一、获取按键的三种方式1、通过event.get配合pygame.key枚举2、通过event.get配合o…

本地测试Segment Anything

一、下载GitHub代码 官网地址&#xff1a; https://github.com/facebookresearch/segment-anything git clone 或者 下载ZIP压缩包 二、下载.pth文件 官网中给出了三个训练好的参数文件 点击下载&#xff0c;我这里下载了最后一个358M大小的模型&#xff08;这里可以使用迅…

apache 配置与应用以及网页优化

Apache 配置与应用 --------构建虚拟 Web 主机-------- 虚拟Web主机指的是在同一台服务器中运行多个Web站点&#xff0c;其中每一个站点实际上并不独立占用整个服务器&#xff0c;因此被称为“虚拟”Web 主机。 通过虚拟 Web 主机服务可以充分利用服务器的硬件资源&#xff0c…

49.现有移动端开源框架及其特点—MACE( Mobile AI Compute Engine)

Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算设备优化的深度学习前向预测框架 MACE覆盖了常见的移动端计算设备(CPU,GPU和DSP),并且提供了完整的工具链和文档,用户借助MACE能够很方便地在移动端部署深度学习模型MACE已经在小米内部广泛使用并且被充分验证具…