数据结构 -- 二叉树

简介 :  

二叉树有左右两个子节点 ;

我们可以用一个包含左孩子和右孩子的结构体数组来存储二叉树 : 

const int N = 1e6 + 10 ;// 存储 : 
struct Node{int l , r ;
}a[N];

读入 : 
 

    for(int i=1;i<=n;i++) cin >> a[i].l >> a[i].r ;

用链表实现参考 : 

二叉树基础知识总结-CSDN博客

例题 : 

1 . 二叉树深度

【深基16.例3】二叉树深度 - 洛谷

可以先遍历左子树,然后遍历右子树 , 如果存在,则高度加一;

对于判断叶子节点 : 只需要判断是否值为0即可 ;

#include<bits/stdc++.h>
using namespace std;const int N = 1e6 + 10 ;// 存储 : 
struct Node{int l , r ;
}a[N]; int n , ans ;void dfs(int i , int d){if(i==0) return ; // 叶子结点 // 处理结点ans = max(ans , d) ; dfs(a[i].l , d + 1) ; // 左子树 dfs(a[i].r , d + 1) ; // 右子树 
}int main(){int n ; cin >> n ;// 读入 for(int i=1;i<=n;i++) cin >> a[i].l >> a[i].r ;dfs(1,1) ; // 从根节点出发 , 初始深度为1cout << ans << endl ; 
}

2 . P4715 淘汰赛

【深基16.例1】淘汰赛 - 洛谷

虽然实现上和二叉树没有什么关系(用队列实现)

#include<bits/stdc++.h>
using namespace std ;
typedef pair<int,int> PII ;
int main(){queue<PII> q ;int n ; cin >> n ;n = 1<<n ;for(int i=1;i<=n;i++) {int x ; cin >> x  ;q.push({x,i}) ;} while(q.size() > 2){auto x = q.front() ; q.pop() ;auto y = q.front() ; q.pop() ;if(x.first > y.first){q.push(x) ;} else{q.push(y) ;}} auto x = q.front() ; q.pop() ;auto y = q.front() ; q.pop() ;if(x.first > y.first){cout << y.second << endl ;}else {cout << x.second << endl ; }
}

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

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

相关文章

from表单的作用、组成和用法

from表单的作用表单在网页中主要负责数据采集功能&#xff0c;它用<form>标签定义。用户输入的信息都要包含在form标签中&#xff0c;点击提交后&#xff0c;<form>和</form>里面包含的数据将被提交到服务器或者电子邮件里&#xff0c;经过服务器上的 ASP 或…

中国联通,互联互通:构建全国乃至全球云服务网络

广泛覆盖&#xff0c;互联互通&#xff1a;构建全国乃至全球云服务网络 中国联通云联网凭借其广泛的覆盖范围和强大的互联互通能力&#xff0c;为企业提供了前所未有的云资源接入便利。在国内&#xff0c;云联网已覆盖至中国境内的334个城市&#xff0c;几乎触及每一处有业务需…

LeetCode:203.移除链表元素

&#x1f3dd;1.问题描述&#xff1a; &#x1f3dd;2.实现代码&#xff1a; typedef struct ListNode ListNode; struct ListNode* removeElements(struct ListNode* head, int val) {if(headNULL)return head;ListNode *NewHead,*NewTail;ListNode *pcurhead;NewHeadNewTail…

【C++】C++11右值引用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.什么是左值&&…

HCIP——HCIA回顾(笔记)

OSI OSI -- 开放式系统互联参考模型&#xff08;7层参考模型&#xff09; 应用层 抽象语言 -》编码 表示层 编码-》二进制 会话层 提供应用程序的会话地址 传输层 分段 数据包容量不易过大&#xff0c;否则影响传输效率及共享宽带&#xff1b;分段大小由MTU决定&…

python前端tkinter

基础窗口展示&#xff1a; import tkinter as tknewWin tk.Tk() newWin.title("Im a new window!") newWin.geometry("400x300500300") #设置窗口的大小以及初始位置lab tk.Label(newWin) #lab tk.Label() lab.config(text "Im a new label!&q…

积极探索新质生产力,九河云携手华为云技术交流引领数智跃迁

4月18日&#xff0c;九河云携手华为云举办了华为云SA技术培训会议&#xff0c;培训邀请到华为云技术人员作为主讲人&#xff0c;通过理论讲解与案例结合的方式&#xff0c;围绕ECS和EBS之间的联动&#xff0c;调优和数据保护等方面展开&#xff0c;深入浅出地讲解了基于EBS部署…

常用UI组件

一、文本组件 1.1 概述 Text为文本组件&#xff0c;用于显示文字内容 1.2 参数 Text组件的参数类型为string | Resource Entry Component struct Index {build() {Column({space : 50}) {Text(你好).fontSize(50)}.width(100%).height(100%).justifyContent(FlexAlign.Cent…

便携式HD-SDI模拟源测试设备

便携式HD-SDI模拟源测试设备 平台简介 便携式手提CameraLink模拟源测试设备&#xff0c;以PCIe的HD-SDI播出卡和X86主板为基础&#xff0c;构建便携式的手提设备。 平台默认操作系统为win7 64位系统&#xff1b;具备丰富的外设接口&#xff0c;如VGA、HDMI、千兆网口、USB2.0/3…

HCIP——MPLS(笔记)

MPLS--多协议标签交换技术 包交换 数据组成数据包&#xff0c;之后&#xff0c;在各个网络节点中不断传递&#xff0c;最终到达目标。包交换转发效率不高的问题所在&#xff1a;1&#xff0c;在整个包交换的过程中&#xff0c;需要先查询路由表之后再查看ARP缓存表两张表来完…

Java刷题API

因为经常用Java刷题&#xff0c;记录一下常用到的API 数组 1. 定义&#xff08;两种方法&#xff09; type arrayName[]; //第一种 type[] arrayName; //第二种//eg int arrayName[] new int[5]; int[] arrayName new int[5];//二维数组 int arrayName[][] new int[5][5]…

【 基于Netty实现聊天室聊天业务学习】第4节.什么是BIO与NIO

IO在读写的时候是阻塞的&#xff0c;无法做其他操作&#xff0c;并发处理能力的非常低&#xff0c;线程之间访问资源通信时候也是非常耗时久&#xff0c;依赖我们的网速&#xff0c;带宽。 我们看一下他的白话原理 我们来看一下这张图那么这张图的话它里面有一个server还有三个…

【C++题解】1607. 两位数运算

问题&#xff1a;1607. 两位数运算 类型&#xff1a;基本运算、拆位求解 题目描述&#xff1a; 小丽在编程课上学会了拆位运算&#xff0c;她已经可以拆出一个两位整数的十位和个位了&#xff0c;她想知道这个整数的十位 / 个位的结果是多少&#xff0c;请编程帮她实现&#…

【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境 处理器&#xff1a; HUAWEI Kunpeng 920 5251K 内存&#xff1a; 512 GiB 整机类型/架构&#xff1a; TaiShan 200K (Model 2280K) BIOS版本&#xff1a; Byosoft Corp. 1.81.K 内核版本 4.19.90-23.15.v2101.ky10.aarch64 第三方应用 数据库 2.问题…

深度学习--CNN应用--VGG16网络和ResNet18网络

前言 我们在学习这两个网络时&#xff0c;应先了解CNN网络的相关知识 深度学习--CNN卷积神经网络&#xff08;附图&#xff09;-CSDN博客 这篇博客能够帮我们更好的理解VGG16和RetNet18 1.VGG16 1.1 VGG简介 VGG论文网址&#xff1a;VGG论文 大家有兴趣的可以去研读一下…

pinpoint接入及接入tomcat

# 5、pinpoint接入 1、开启性能监控 应用管理详情页面-->【属性】编辑&#xff0c;勾选开启用性能监控 2.java命令行引用pinpoint和相关变量 java $JAVA_OPTS -javaagent:/usr/local/pinpoint-agent/pinpoint-bootstrap-1.7.2.jar -Dpinpoint.agentIddcs-repair-${HOSTNAME…

k8s集群安装网络插件calico常见问题

关于calico网络插件报错的常见问题处理 1.安装calico插件时&#xff0c;calico相关pod无法成功运行。 报错信息&#xff1a;“MountVolume.SetUp failed for volume "bpffs" : hostPath type check failed: /sys/fs/bpf is not a directory”解决办法&#xff1a;检…

互联网摸鱼日报(2024-04-19)

互联网摸鱼日报(2024-04-19) 36氪新闻 魏建军把方向盘交给AI&#xff0c;长城汽车开卷智能驾驶 一季度我国工业经济保持较快增长&#xff0c;下一步这么做 晶华光学北交所IPO问询分析&#xff1a;利润下滑和存货计提是否充分或成公司能否上会的关键性问题 这10 本改变人生的…

【智能算法】鸡群优化算法(CSO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2014年&#xff0c;X Meng等人受到鸡群社会行为启发&#xff0c;提出了鸡群优化算法&#xff08;Chicken Swarm Optimization, CSO&#xff09;。 2.算法原理 2.1算法思想 CSO算法的思想是基于对…

数仓建模—物理数据模型

数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文章,这一节我们介绍一下物理数据模型 数仓建模—数据模型 数仓建模—逻辑数据模型 什么是物理数据模型 物理数据模型指定如何在数据库中构建数据模型。它概述了所有表结构,包括列名、数据类…