输入一颗二元查找树,将该树转换为它的镜像
来源:互联网 发布:最美的诗句 知乎 编辑:程序博客网 时间:2024/05/17 22:39
二叉树
一、题目:
二、代码:
输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。
用递归和循环两种方法完成树的镜像转换。
例如输入:
8
/ \
6 10
/ \ / \
5 7 9 11
输出:
8
/ \
10 6
/ \ / \
11 9 7 5
定义二元查找树的结点为:struct BSTreeNode // a node in the binary search tree (BST){ int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node};
1.递归:#include<iostream>using namespace std;struct BSTreeNode // a node in the binary search tree (BST){ int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node};class BSTree{public :BSTree(){this->root = this->Create();}~BSTree(){this->Release(this->root);}BSTreeNode *GetRoot();void InOrder(BSTreeNode *root);//中序遍历void getChange(BSTreeNode *root);private :BSTreeNode *root;BSTreeNode *Create();void Release(BSTreeNode *root);};void BSTree::Release(BSTreeNode *root) { if (root != NULL){ Release(root->m_pLeft); //释放左子树 Release(root->m_pRight); //释放右子树 delete root; } } BSTreeNode * BSTree::Create(){BSTreeNode *root;int ch;cout<<"请输入节点数据:"<<endl;cin>>ch;if(ch==0) root = NULL;else{root = new BSTreeNode;root->m_nValue = ch;root->m_pLeft = Create();root->m_pRight = Create();}return root;}BSTreeNode *BSTree::GetRoot(){return this->root;}void BSTree::InOrder(BSTreeNode *root){if (root==NULL) return; //递归调用的结束条件 else{InOrder(root->m_pLeft); //中序递归遍历root的左子树cout<<root->m_nValue<<" "; //访问根结点的数据域InOrder(root->m_pRight); //中序递归遍历root的右子树}}void BSTree::getChange(BSTreeNode *root){if(root == NULL) return;else {getChange(root->m_pLeft);getChange(root->m_pRight);BSTreeNode *temp = root->m_pLeft;root->m_pLeft = root->m_pRight;root->m_pRight = temp;}}void main(){BSTree bst;BSTreeNode *root = bst.GetRoot();bst.InOrder(root);cout<<endl;bst.getChange(root);cout<<endl;bst.InOrder(root); cout<<endl;}
- 输入一颗二元查找树,将该树转换为它的镜像
- 15、输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像,
- 输入一颗二元查找树,将该树转换为它的镜像
- 【算法】输入一颗二元查找树,将该树转换为它的镜像
- 15.输入一颗二元查找树,将该树转换为它的镜像
- 15.输入一颗二元查找树,将该树转换为它的镜像
- No15、输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- No15_输入一颗二元查找树,将该树转换为它的镜像,
- 输入一颗二元查找树,将该树转换为它的镜像
- 15 输入一颗二元查找树,将该树转换为它的镜像
- 13.输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一棵二元查找树, 将该树转换为它的镜像
- 利用Physical standby的数据文件来恢复primary上的数据损坏
- vs2010编译irrlicht源码
- 对路径的访问被拒绝
- Android系统启动过程
- __extension__ typedef int __ssize_t;是什么意思
- 输入一颗二元查找树,将该树转换为它的镜像
- 从传统的无盘工作站到SDC沙盒做图纸源代码数据防泄密
- 从海尔的组织结构再造看企业的组织结构
- 校车3G视频车载定位导航
- 英语练习Where are my keys
- Java applet(小程序)介绍
- GDB定位内存泄露的方法(Linux)
- MFC中实现关闭软件系统
- Web前端研发工程师编程能力飞升之路