点击打开链接

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<cstring>
#include<string>
#include<algorithm>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<map>
#define LL long long
#define inf 0x3f3f3f3f
using namespace std;
int t=0,n=0,m=0,X=0,Y=0,Z=0;
int tree[450][2],flag1,flag2;
void prin(int x)
{if(tree[x][0]==-1){printf("%d\n",x);return;}prin(tree[x][0]);
}
void solv(int p,int a,int b)
{if(p==-1) return;if(tree[p][0]==a){///左边节点flag1=p*2+0;}if(tree[p][1]==a){///右边节点flag1=p*2+1;}if(tree[p][0]==b){///左边节点flag2=p*2+0;}if(tree[p][1]==b){///右边节点flag2=p*2+1;}solv(tree[p][0],a,b);solv(tree[p][1],a,b);
}
int main()
{scanf("%d",&t);while(t--){scanf("%d %d",&n,&m);for(int i=0;i<n;i++){scanf("%d %d %d",&X,&Y,&Z);tree[X][0]=Y;tree[X][1]=Z;}for(int i=0;i<m;i++){int x=0,y=0,type=0;scanf("%d",&type);if(type==1){scanf("%d %d",&x,&y);flag1=0; flag2=0;solv(0,x,y);swap(tree[flag1/2][flag1%2],tree[flag2/2][flag2%2]);///升级到父亲节点,交换左右儿子}else if(type==2){scanf("%d",&x);prin(x);}}}return 0;
}

百练+二叉树操作+直接找到父节点,然后交换左右儿子,递归相关推荐

  1. [CareerCup] 4.7 Lowest Common Ancestor of a Binary Search Tree 二叉树的最小共同父节点

    4.7 Design an algorithm and write code to find the first common ancestor of two nodes in a binary tr ...

  2. 算法练习day10——190328(二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式、找到一个节点的后继节点、二叉树的序列化和反序列化)

    1.实现二叉树的先序. 中序. 后序遍历, 包括递归方式和非递归方式 1.1 访问节点的顺序 节点访问顺序如下图所示: 访问顺序:1 2 4 4 4 2 5 5 5 2 1 3 6 6 6 3 7 7 ...

  3. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  4. MFC动态建立二叉树、序列检错以及获取父节点

    根据前序+中序或中序+后序在MFC中实现动态建立二叉树. 文章目录 根据前序+中序或中序+后序在MFC中实现动态建立二叉树. 前言 一.动态建立二叉树 1.题目要求 2.具体实现 1.对话框布局 2. ...

  5. 程序员面试100题之十六:二叉树中两个节点的最近公共父节点

    这个问题可以分为三种情况来考虑: 情况一:root未知,但是每个节点都有parent指针 此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个 ...

  6. 左神算法基础班4_4_3在二叉树中找到一个节点的后继节点

    Problem: 在二叉树中找到一个节点的后继节点 [题目] 现在有一种新的二叉树节点类型如下: public class Node { public int value; public Node l ...

  7. LeetCode 742. 二叉树最近的叶节点(建立父节点信息+BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个 每个结点的值互不相同 的二叉树,和一个目标值 k,找出树中与目标值 k 最近的叶结点. 这里,与叶结点 最近 表示在二叉树中到达该叶节点需要行进 ...

  8. 程序员面试100题之十六:二叉树中两个节点的最近公共父节点(最低的二叉树共同祖先)

    这个问题可以分为三种情况来考虑: 情况一:root未知,但是每个节点都有parent指针 此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个 ...

  9. 带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别

    一.背景 一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash.RTree.FullText.本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树.平衡二叉树.B-Tr ...

最新文章

  1. sqoop 1.4.5 增量导入hive 0.12.0
  2. OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程
  3. 分享一篇关于社区团购的竞品分析
  4. 【HTML】获取当前时间并显示在网页上
  5. php实现中间件6,THINKPHP6 实现中间件
  6. 在命令行中使用ssh连接远程服务器
  7. 【bzoj4530】[Bjoi2014]大融合 LCT维护子树信息
  8. 设计模式(十一):享元模式
  9. 唯物主义观点有哪些_唯物主义的观点及方法论有哪些?
  10. Deepin、统信UOS等Linux系统连接Windows网络邻居的共享文件夹的方法
  11. icloud邮箱android手机,如何用iCloud账号登陆邮箱 使用方法【详解】
  12. c语言设计一个语音识别程序,用 C# 开发自己的语音识别程序
  13. java计算机毕业设计自修室座位预约系统源码+数据库+系统+lw文档+mybatis+运行部署
  14. nginx的安装和配置
  15. Python 批量下载SIGMOD,VLDB的论文 Mac OS
  16. 现代函数概念的“序偶”定义
  17. Android ViewPager嵌套ViewPager+Fragment问题
  18. 北京量子院量子科学论坛:文凯博士介绍相干量子计算
  19. 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新
  20. 思博伦OpenFlow性能测试白皮书上篇

热门文章

  1. flash air 声音录制
  2. 汉明码——计算机网络——全网最通俗的讲解
  3. Java 数字添加千分位
  4. 智能呼叫系统关键技术
  5. nrf52832 学习笔记(二)SDK框架分析
  6. mysql权限管理实验_实验五 MYSQL权限与安全
  7. [办公自动化]windows7 仿宋GB2312字体打印不对
  8. AttributeError: module ‘win32com.gen_py.00062FFF-0000-0000-C000-000000000046x0x9x6‘ has no attribute
  9. VCSA6.7 u1更新到u3
  10. word软件是不是计算机病毒,《计算机病毒》Word宏病毒实验