간단하게 두 갈래 트리를 구축하여 거울을 만든다
원 두 갈래 나무
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);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.