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


  • 相关阅读:
    手脱ASPack2.12壳(练习)
    手脱UPX3.91壳(练习)
    如何在程序执行前插入可执行代码(算是吾爱的作业吧,活学活用)
    小米笔记本粉丝感恩狂欢趴【慎入!!】
    picpick截屏软件脱壳
    JAVA反序列化漏洞
    Java中的数据类型
    Java中常见的包
    Scrapy
    PHPstorm 函数时间注释的修改
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6960922.html
Copyright © 2011-2022 走看看