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程序算法设计的学习有所帮助。