zoukankan      html  css  js  c++  java
  • 简单构建一个二叉树而且产生镜像

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

    原二叉树

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


  • 相关阅读:
    最近学习的 Node.js 之 http
    最近学习的 Node.js 基础:安装、环境配置、forever
    关于MySQL5.7 几天的总结(简单分区 & json类型)
    不会点git真不行啊.
    python爬虫基础_scrapy
    python爬虫基础_webwechat
    python爬虫基础_requests和bs4
    python之django母板页面
    python之django基础
    python网络之web框架
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6960922.html
Copyright © 2011-2022 走看看