查找二叉树结点C++,数组模拟二叉树

已知一棵二叉树用邻接表结构存储,中序查找二叉树中权值为 x 的结点,并指出该结点在中序遍历中的排列位置。
例:如图二叉树的数据文件的数据格式如下:

请添加图片描述

输入格式
第一行包含整数 n,表示二叉树的结点数,结点编号从 1 到 n。第二行包含整数 x,表示要查找的结点的权值。接下来 n 行,每行包含三个整数,用来描述一个结点。其中的第 i行的第一个整数,表示结点 i 的权值,第二个整数表示结点 i 的左儿子结点编号(为 0 表示它没有左儿子),第三个整数表示结点 i 的右儿子结点编号(为 0表示它没有右儿子)。

输出格式
输出一个整数,表示查找的结点在中序遍历中排第几个。

数据范围
1≤n≤100点的权值不超过 100,结点 1 为树的根结点,数据保证答案唯一。

输入样例:
7
15
5 2 3
12 4 5
10 0 0
29 0 0
15 6 7
8 0 0
23 0 0

输出样例:
4

#include<iostream>
using namespace std;
const int N=110;
int w[N],l[N],r[N],mid[N],n,x,k=1;
void dfs(int u) //中序遍历
{if(l[u]) dfs(l[u]);mid[k++]=w[u]; //用mid数组存储中序遍历序列if(r[u]) dfs(r[u]);
}
int main()
{cin>>n;cin>>x;for(int i=1;i<=n;i++){int a,b,c;cin>>a>>b>>c;w[i]=a,l[i]=b,r[i]=c;}dfs(1); //从第一个节点遍历for(int i=1;i<=n;i++)if(mid[i]==x)cout<<i;return 0;
}

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

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

相关文章

项目学习——canvas标签

canvas在本次项目中是重难点&#xff0c;经过这次项目我对canvas也有了部分认识&#xff0c;学习中没有查canvas标签的名字&#xff0c;因此&#xff0c;我将他称为画布标签。 首先&#xff0c;canvas的宽高与其他标签不同&#xff0c;他的宽高是标签内属性&#xff0c;在我使…

Arduino控制器使用Udp网络对8路IO输出控制

一、实现功能 1、创建串口连接&#xff0c;将接收的Udp数据通过串口发送出去。 2、创建Udp连接&#xff0c;用以接收Udp数据和对发送数据的Udp机器反馈Udp数据 3、对接收到的Udp数据进行解析&#xff0c;然后对8路IO进行输出控制。 4、1对应IO输出低电平&#xff0c;‘0’对…

LeetCode第824题 - 山羊拉丁文

题目 解答 String toGoatLatin(String S) {if (S null) {return "";}S S.trim();if (S.isEmpty()) {return "";}StringBuilder sb new StringBuilder();String[] tokens S.split(" ");for (int i 0, j 1, length tokens.length; i <…

stack_queue:三个关键注意事项解析

一、stack与容器 template<class T, class Container> class stack { private:Container _con; };Container 为容器&#xff0c;在实例化创建对象时&#xff0c;我们可以传 vector<T> 或 list<T> 等作为栈的底层。 举例&#xff1a; int main() {stack<i…

DES加密解密算法(简单、易懂、超级详细)

目录 一、基础补充 二、什么是DES算法 &#xff08;1&#xff09;对称加密算法 &#xff08;2&#xff09;非对称加密算法 &#xff08;3&#xff09;对称加密算法的应用 三、DES算法的基础操作步骤 1.明文的加密整体过程 2.F轮函数解析 3.密钥的形成过程 四、AC代码 五、D…

Python爬虫学习之requests库

目录 一、requests的基本使用 二、get请求 三、post请求 四、代理的使用 五、cookie登录以及验证码图片识别 一、requests的基本使用 import requestsurl http://www.baidu.comresponse requests.get(url url)#一个类型和六个属性 #Response类型 #print(type(response…

PHP之PDO_MYSQL扩展安装步骤

1&#xff0c;如果有php源码包可以不用下载&#xff0c;在 源码包下的 ext/ 下面可以找到 cd php-8.1.9/ext/pdo_mysql 2,如果存在&#xff0c;直接安装 /usr/local/php-8.1.9/bin/phpize ./configure --with-php-config/usr/local/php-8.1.9/bin/php-config make &&a…

代码随想录算法训练营29期Day41|LeetCode 343,96

文档讲解&#xff1a;整数拆分 不同的二叉搜索树 343.整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/description/ 思路&#xff1a; 题目要求我们拆分n&#xff0c;拆成k个数使其乘积和最大&#xff0c;然而题目中并没有给出k&#xff0c;所以…

leetcode-用队列实现栈

225. 用队列实现栈 我们先简单了解下栈与队列的区别&#xff1a; 操作方式&#xff1a;栈是一种后进先出(Last In First Out, LIFO)的数据结构&#xff0c;只允许在栈顶进行插入和删除操作。而队列是一种先进先出(First In First Out, FIFO)的数据结构&#xff0c;规定在队尾…

【Mysql】事务的隔离级别与 MVCC

事务隔离级别 我们知道 MySQL 是一个 C/S 架构的服务&#xff0c;对于同一个服务器来说&#xff0c;可以有多个客户端与之连接&#xff0c;每个客户端与服务器连接上之后&#xff0c;就是一个会话&#xff08; Session &#xff09;。每个客户端都可以在自己的会话中向服务器发…

【水文】求解排列组合

#include <stdio.h> // 计算阶乘 int factorial(int n) { int result 1; for (int i 1; i < n; i) { result * i; } return result; } // 计算组合数 int combination(int n, int r) { return factorial(n) / (factorial(r) * factor…

如何使用VSCode上运行Jupyter,详细案例过程出可视化图

Python作为最受AI喜欢的语言之一&#xff0c;我们与大家共同学习下如何在VS Code上运行Jupyter&#xff0c;并且用简单案例实现出图。 环境 VS Code version: 1.80.1 Python: 3.12.0 小白安装过程&#xff1a; 在准备好基础环境&#xff0c;小白心想&#xff0c;AI可是霸占科…

Loadbalancer如何优雅分担服务负荷

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Loadbalancer如何优雅分担服务负荷 前言Loadbalancer基础&#xff1a;数字世界的分配大师1. 分发请求&#xff1a;2. 健康检查&#xff1a;3. 会话保持&#xff1a;4. 可伸缩性&#xff1a;5. 负载均衡…

Linux 系统 ubuntu22.04 发行版本 固定 USB 设备端口号

前言&#xff1a; 项目中为了解决 usb 设备屏幕上电顺序导致屏幕偏移、触屏出现偏移等问题。 一、方法1&#xff1a;使用设备 ID 号 步骤&#xff1a; 查看 USB 设备的供应商ID和产品ID Bus 001 Device 003: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Te…

el-table点击某一行选中改变背景色且执行方法

elementUI table表格点击某一行选中并且改变背景色 使用:row-style"rowStyle"及row-click“selectRow”&#xff1a; 其中 selectRow 方法中&#xff1a; row 输出&#xff1a;当前行的内容 column 输出&#xff1a;当前列的信息 event 输出&#xff1a;当前事件 …

小程序支付类型接入京东支付

一、情景描述 当前项目想在微信小程序付款时添加上京东支付支付类型&#xff0c;效果如下 普通的付款方式可以直接付款就能完成支付&#xff0c;但京东支付无法在小程序上直接付款&#xff0c;他需要复制生成的链接&#xff0c;然后打开京东app然后在京东平台上付款。 所以&…

手机云控制发电机组 有网络随时随地操控监控运行

GenCloudTM 发电机组云控系统简介 Ver2.0 目录 公司简介…… …………………………… ………………………………………………1概 述…… …………………………… ………………………………………………1主要功能及特点………… …………… ………… ………………………………

Mac基于VMware安装CentOS

流程偏长&#xff0c;下一步根本点不完&#xff1b; 01 首先&#xff0c;明确下两款软件的版本信息&#xff1b; VMware是【VMware-Fusion-13.5.0】CentOS是【CentOS-7-x86_64-Minimal-1908】&#xff1b; VMware用来管理虚拟机系统&#xff0c;安装就不多说了&#xff0c;双…

【c语言】深入理解指针(2)

1. 字符指针变量 可以利用字符指针存放字符数组来间接存放字符串。 int main() {char arr[10] "abcdef";char* p arr;printf("p %s\n", p);return 0; } 那我们可不可以直接给字符指针存放字符串呢&#xff1f; int main() {char* p1 "abcde…

51单片机学习笔记 --步进电机驱动说明

文章目录 工作原理代码编写驱动方式全步进驱动半步进驱动微步进驱动 工作原理 工作原理简要说明&#xff0c;和单片机一起配合使用的步进电机多为28BYJ28 五线四相步进电机&#xff0c;配合ULN2003驱动板进行控制&#xff0c;如图所示&#xff0c;对于扭矩、精度要求较高的还有…