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

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

原二叉树

1

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);}

版权声明:本文为博主原创文章,未经博主允许不得转载。

,谁的指间滑过了千年时光;谁在反反复复中追问可曾遗忘;

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

相关文章:

你感兴趣的文章:

标签云: