C语言实现输入一颗二元查找树并将该树转换为它的镜像
本文实例讲述了C语言实现输入一颗二元查找树并将该树转换为它的镜像的方法,分享给大家供大家参考。具体实现方法如下:
采用递归方法实现代码如下:
/*
*Copyright(c)2011alexingcool.AllRightsReserved.
*/
#include<iostream>
#include<iterator>
#include<algorithm>
usingnamespacestd;
structNode{
Node(inti=0,Node*l=NULL,Node*r=NULL):item(i),left(l),right(r){}
intitem;
Node*left;
Node*right;
};
Node*Construct()
{
Node*node6=newNode(11);
Node*node5=newNode(9);
Node*node4=newNode(7);
Node*node3=newNode(5);
Node*node2=newNode(10,node5,node6);
Node*node1=newNode(6,node3,node4);
Node*root=newNode(8,node1,node2);
returnroot;
}
voidConvert(Node*root)
{
if(root==NULL)
return;
Convert(root->left);
//在这里试试swap(root->left,root->right),
//看输出结果,有利于理解二叉树递归
Convert(root->right);
swap(root->left,root->right);
}
voidInOrder(Node*root)
{
if(root){
InOrder(root->left);
cout<<root->item<<"";
InOrder(root->right);
}
}
voidmain()
{
Node*root=Construct();
InOrder(root);
cout<<endl;
Convert(root);
InOrder(root);
}
希望本文所述实例对大家C程序算法设计的学习有所帮助。