简单构建一个二叉树并且产生镜像

简介: 简单的面试题,产生一个二叉树并且产生该二叉树的镜像。 原二叉树 1  2  3 镜像后  1       3  2 #include using namespace std;typedef struct BinaryTreeNode{ char data ; ...

简单的面试题,产生一个二叉树并且产生该二叉树的镜像。

原二叉树

2  3

镜像后 

1      

3  2

#include <iostream>
using namespace std;
typedef struct BinaryTreeNode
{
   char data ;
   BinaryTreeNode* left ;
   BinaryTreeNode*  right;
}BinaryTreeNode,* PBinaryTreeNode; 

class BinaryTreeManager
{
 public:
	BinaryTreeManager()
	{
		  m_root=NULL;
	}
	void Init()
	{
		m_root=CreateBinaryTree() ;
	}
	//输出二叉树 后续遍历
	void  ShowBinaryTree(PBinaryTreeNode node)  
	{
		  if(node!=NULL)
		  {
			 ShowBinaryTree(node->left);
			 cout<<node->data<<"  ";
			 ShowBinaryTree(node->right);
		  }
	}
	//镜像 
	void Mirror(PBinaryTreeNode node)
	{
        if(node!=NULL){
			PBinaryTreeNode tem=node->right ;
			node->right=node->left ;
			node->left=tem;
			Mirror(node->left);
			Mirror(node->right);
		}
	}
	PBinaryTreeNode GetRoot()
	{
		return m_root ;
	}
private:
	//创建二叉树
	PBinaryTreeNode CreateBinaryTree()
	{
		char ch;
		PBinaryTreeNode T;
		cin>>ch ;
		//结束输出
		if(ch=='#')
		{   
			cout<<"------"<<endl;
			T=NULL;
		}
		else
		{
			T=new BinaryTreeNode;
			T->data=ch ;
			T->left=CreateBinaryTree() ;
			T->right=CreateBinaryTree();
		}
		return T;
	}
private:
	PBinaryTreeNode m_root ;
};
void main()
{
	 BinaryTreeManager  bTManager ;
	 bTManager.Init() ;
	 PBinaryTreeNode root=bTManager.GetRoot();
	 bTManager.ShowBinaryTree(root);
	 ///对二叉树做镜像
	 bTManager.Mirror(root);
	 cout<<endl;
	 bTManager.ShowBinaryTree(root);
}


目录
相关文章
|
3天前
|
存储
构建二叉树的基本功能
构建二叉树的基本功能
|
7月前
|
存储 缓存 应用服务中间件
Docker 镜像解密:分层存储与镜像构建原理
Docker 镜像解密:分层存储与镜像构建原理
229 0
|
7月前
|
存储 持续交付 Docker
Docker 镜像解密:分层存储与构建原理多角度解析
Docker 镜像解密:分层存储与构建原理多角度解析
125 0
|
3天前
|
存储 Linux 应用服务中间件
安装docker 并搭建出一颗爱心树
Docker是Go语言编写的开源容器运行时软件,遵循Apache2.0协议,提供应用封装和跨平台运行能力,灵感来自集装箱。主要组件包括镜像(静态模板)、容器(运行时实例)和仓库(镜像存储库)。最大公开仓库是Docker Hub,国内有阿里、网易等公开仓库。在Redhat 9环境下,安装Docker涉及配置阿里云仓库、安装yum-utils、添加仓库、安装Docker软件包、设置镜像加速、拉取Nginx镜像并创建运行容器,实现端口映射和持久化存储。
33 1
安装docker 并搭建出一颗爱心树
|
3天前
|
存储 Apache Swift
无限套娃_docker入门(镜像、容器、仓库)
无限套娃_docker入门(镜像、容器、仓库)
35 0
构建二叉搜索树及基本操作
构建二叉搜索树及基本操作
|
9月前
|
C++
构建二叉树
构建二叉树
43 0
构建二叉树
|
算法
算法系列-二叉树构建
在内卷潮流的席卷下,身为算法小白的我不得不问自己,是否得踏上征程,征服这座巍巍高山。 从零开始,终点不知何方,取决于自己可以坚持多久。 希望你可以和我一样,克服恐惧,哪怕毫无基础,哪怕天生愚钝,依然选择直面困难。
二叉树的镜像(简单难度)
二叉树的镜像(简单难度)
48 0
二叉树的镜像(简单难度)