第15 题: 题目:输入一颗二元查找树,将该树转换为它的镜像,

第15 题:题目:输入一颗二元查找树,将该树转换为它的镜像 第15 题:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入:8/ \6 10/\ /\5 7 9 11输出:8/ \10 6/\ /\11 9 7 5定义二元查找树的结点为: 阅读详情

即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。

例如输入: 

        8
       / \
      6 10
      /\ /\
    7 9 11

输出: 

          8
      /     \
   10     6
     /\      /\
  11 9 7 5

定义二元查找树的结点为:

struct BSTreeNode // a node in the binary search tree (BST)
{
int m_nValue; // value of node
BSTreeNode *m_pLeft; // left child of node
BSTreeNode *m_pRight; // right child of node
};


分析:镜像转换无非就是对每个节点进行一个左右交换。

#include <iostream>
#include <queue>

using namespace std;

struct BNode
{
	int key;
	BNode *m_pl;
	BNode *m_pr;
};

typedef BNode* T;
typedef queue<T> QET;

void CreateTree(BNode* &head)
{
	QET qe;

	head = new BNode();
	cin >> head->key;
	head->m_pl = head->m_pr = 0;
	qe.push(head);

	while ( !qe.empty() )
	{
		BNode *temp = qe.front();
		qe.pop();
		cout << temp->key << "的左右子女的关键字,空用-1表示:" << endl;
		
		BNode *l = new BNode();
		BNode *r = new BNode();

		cin >> l->key >> r->key ;
		if (l->key == -1)
			delete l;
		else 
		{
			l->m_pl = l->m_pr = 0;
			temp->m_pl = l;
			qe.push(l);
		}
			
		if (r->key == -1)
			delete r;
		else
		{
			r->m_pl = r->m_pr = 0;
			temp->m_pr = r;
			qe.push(r);
		}
	}
	return ;
}

void RecurWay(BNode *head)
{
	if ( head == 0 )
		return ;

	RecurWay(head->m_pl);
	RecurWay(head->m_pr);
	
	BNode *s = head->m_pl;
	head->m_pl = head->m_pr;
	head->m_pr = s;

	return ;
}

void CircuWay(BNode *head)
{
	QET qe;
	
	if ( head == 0 )
		return ;

	qe.push(head);
	while ( !qe.empty() )
	{
		BNode *top = qe.front();

		if ( top->m_pl )
			qe.push(top->m_pl);
		if ( top->m_pr )
			qe.push(top->m_pr);

		BNode *s = top->m_pl;
		top->m_pl = top->m_pr;
		top->m_pr = s;

		qe.pop();
	}

	return ;
}

int main()
{
	BNode *head = 0;

	CreateTree(head);	
	
	RecurWay(head);
	CircuWay(head);

	return 0;
}



C语言实现输入一颗二元查找树并将该树转换为它的镜像 主要介绍了C语言实现输入一颗二元查找树并将该树转换为它的镜像,是数据结构中二元查找树的一个比较经典的算法,有不错的借鉴价值,需要的朋友可以参考下 立即下载

相关推荐

DDR Study - LPDDR5 Power-Up and Initialization Sequence

本文深入解析LPDDR5内存的上电初始化流程,涵盖电源斜坡、复位信号释放和初始化训练等关键阶段。通过实际案例分享,详细探讨了电源轨时序、RESET信号处理、ZQ校准和CA总线训练等核心技术要点,帮助硬件工程师规避常见设计陷阱,确保DDR内存稳定运行。

weixin_42523792的博客 304

输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。

#include #include using namespace std; //二叉树结构 typedef struct BinaryTreeNode { char m_chValue; BinaryTreeNode *m_pLChild; BinaryTreeNode *m_pRChild; }BiTree; //递归方式将树镜像 void BSTreeMirrored(B

FelixTT的专栏 603

2026年数据中心运行与管理专业人才培养基地建设方案(高职、数据中心运行与管理新专业、人才培养、专业代码:510310)

摘要: 为响应国家“东数西算”战略和数字经济需求,我校拟联合行业领军企业建设数据中心运行与管理人才培养基地。项目基于国家政策引导和产业快速发展背景,针对行业10万人才缺口,对标教育部新设专业标准(510310),分三阶段实施五年规划:专业奠基(2026-2028)、内涵深化(2028-2029)、辐射引领(2030-2031)。建设内容涵盖校企协同岗位能力分析、模块化课程开发(如网络管理、自动化运维等)、实训基地搭建及“课证融通”培养模式,重点培养基础设施、网络服务、运维托管三类岗位技能人才,目标建成区域性

啊碧根果的博客 1691

【微软100题】输入一颗二元查找树,将该树转换为它的镜像

package test; /** * 题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 / \ / \ 5 7 9 11 输出: 8 / \ 10

Zealot的专栏 906

告别仿真报错!手把手教你为Intel MAX10 FPGA定制IBIS模型(附Allegro Skill工具)

本文详细介绍了为Intel MAX10 FPGA定制IBIS模型的完整流程,解决信号完整性仿真中的管脚映射问题。通过Allegro Skill工具自动化处理管脚信息,优化IBIS模型关键段落,提升仿真效率和精度,适用于高速数字电路设计。

weixin_33217202的博客 325

基于多智能体深度强化学习的空地协同通信系统轨迹设计与访问控制

所属子方向: UAV assisted communication 名词注释 coordinated:协调、协同 base stations 基站,公用移动通信基站,是移动设备接入互联网的接口设备,是指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台。 UAV-BS:无人机基站 cooperative-competitive game:合作竞争博弈 throughput :吞吐量,每秒比特数 bps,bits per second Determinis

skysys的研究小屋 4970

输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。

/* copyright@nciaebupt 转载请注明出处 题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如: 8 8 / \ 转换 / \ 6 10 -->

nciaebupt 1501

Layout常见错误汇总-不定时更

1、在做LVS时,出现中断错误 解决方法: 重新建立新的schematic和layout文件,对应好其中的元器件,同时两个文件的名字也要对应好“schematic”和“layout”,其他名字的话软件找不到如何对应。

weixin_38753095的博客 4万+

输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换:

题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。    例如输入:   8   / /   6 10  // // 5 7 9 11 输出:   8   / /  10 6  // // 11 9 7 5 package cn.itcast.demo.Mir

u014072347的专栏 553

深入解析高通SA8775芯片:性能、架构与研发创新趋势

SA8775芯片凭借其强大的CPU、GPU和AI加速能力,能够应对现代智能系统中的复杂计算任务。它不仅适合高性能计算、深度学习应用,也在汽车、智能设备等领域有广泛的应用前景。无论是在自动驾驶系统中,还是在车载信息娱乐和高级嵌入式系统中,SA8775都展现了其出色的计算能力和能效平衡,是现代智能系统的重要硬件基础。SA8775芯片作为高通的高性能处理平台,具有出色的计算和AI加速能力,但也存在一些值得关注的地方。

weixin_43199439的博客 9351

YOLOv8与Swin Transformer的完美结合:如何提升目标检测的精度与速度

Swin Transformer(Shifted Window Transformer)是一种新型的视觉Transformer架构,采用了局部窗口(Window)和局部窗口偏移(Shifted Window)的策略,极大减少了计算复杂度,同时保持了全局感知能力。局部窗口注意力:每个窗口内的元素进行自注意力计算,减少计算量。窗口偏移:通过在不同层次引入窗口偏移,增强了全局信息的交互。层级设计:通过堆叠多个层次的模块,逐渐捕捉不同尺度的特征。

shrgegrb的博客 2151

输入一颗二元查找树,将该树转换为它的镜像

微软面试题,难度系数中下,题目描述如下: 题目:输入一颗二元查找树,将该树转换为它的镜像,  即在转换后的二元查找树中,左子树的结点都大于右子树的结点。  用递归和循环两种方法完成树的镜像转换。  例如输入:       8     /     \    6     10   / \      /  \         5   7  9   11  输出:

pediy_yuhan的专栏 1512

ECU诊断功能测试:从理论到实践

ECU诊断功能是指通过特定的诊断协议与ECU进行通信,以获取ECU的状态信息、故障码、数据流等,并执行特定的诊断操作。诊断功能的主要目的是帮助开发人员和维修人员快速定位和解决ECU中的问题,确保车辆的安全性和可靠性。UDS协议是ISO 14229标准的一部分,定义了一系列的诊断服务,如读取故障码、清除故障码、读取数据流等。UDS协议基于CAN(Controller Area Network)总线,具有较高的灵活性和扩展性。读取故障码是诊断功能中最基本的操作之一。通过读取故障码,可以快速定位ECU中的问题。

闲人编程的博客 1809

输入一颗二元查找树,将该树转换为它的镜像(15)

第15题: 题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。  例如输入:   8   / \   6 10  /\ /\ 5 7 9 11 输出:    8   / \  10 6  /\ /\ 11 9 7 5 定义二元查找树的结点为: struct BSTr

Allendale的专栏 1177

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

每天学习一算法系列(15)(输入一颗二元查找树,将该树转换为它的镜像)

题目: 输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 /\ /\ 5 7 9 11 输出: 8 / \ 10 6 /\ /\ 11 9 7 5 定义二元查找树的结点为: struct BSTreeNode // a node in th

yuucyf的专栏 1784

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

15、输入一颗二元查找树,将该树转换为它的镜像

题目: 输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。    例如输入:   8   / \   6 10  /\ /\ 5 7 9 11 输出:   8   / \  10 6  /\ /\ 11 9 7 5 方法一:递归 可以用递归方法对每一个结点交换左右子

zwb8848happy的专栏 734

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【java 面试100】15 :输入一颗二元查找树,将该树转换为它的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。   例如输入:   8   / /   6 10  // // 5 7 9 11 输出:    8   / /  10 6  // // 11 9 7 5 public class MirrorBST { pu

stonetudou的专栏 563

No15_输入一颗二元查找树,将该树转换为它的镜像,

题目博客: http://blog.youkuaiyun.com/v_JULY_v/article/details/6057286 题目:

u010565244的专栏 510

[编程之美-15]输入一颗二元查找树将该树转换为它的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。  例如输入:  8  / /  6 10  / / / /  5 7 9 11 输出:  8  / /  10 6  / / / /  11 9 7 5 定义二元查找树的结点为: struct BSTreeNode

CVer 1752

15 输入一颗二元查找树,将该树转换为它的镜像

/* 第 15 题: 题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 / \ / \ 5 7 9 11 输出: 8 / \ 10 6 / \ / \ 11 97 5 两种方法: 1

小人物的草稿本 691

java的的建立树的左子树_15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点, 用递归和循环两种方法完成树的镜像转换...

声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明。谢谢。题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点, 用递归和循环两种方法完成树的镜像转换。题目分析:注:二叉排序树的中序遍历结果...

weixin_39649736的博客 273

求二元查找树的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8/\610/\/\57911 输出: 8/\106/\/\119 75 定义二元查找树的...

diaoyaohan8253的博客 128

15.输入一颗二元查找树,将该树转换为它的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。  例如输入:   8   / /   6 10  // // 5 7 9 11 输出:    8   / /  10 6  // // 11 9 7 5 定义二元查找树的结点为: struct BSTreeN

游刃有余则成的专栏 494

【编程题目】输入一颗二元查找树,将该树转换为它的镜像

第 15 题(树):题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入:8/ \6 10/ \ / \5 7 9 11输出:8/ \10 6/ \ / \11 9 7 5定义二元查找树的结点为:struct BSTreeNode // a node in the bina...

weixin_34240520的博客 289
上一篇: 6.给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数
下一篇: 第18 题: 题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数 字)。
Matrixlibing
博客等级 码龄14年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值