<仅是自己做笔记。。。系列-7>输入一颗二元查找树,将该树转换为它的镜像
来源:互联网 发布:修改oracle默认端口 编辑:程序博客网 时间:2024/05/16 11:15
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。
例如输入:
8
/ \
6 10
/ \ / \
5 7 9 11
输出:
8
/ \
10 6
/ \ / \
例如输入:
8
/ \
6 10
/ \ / \
5 7 9 11
输出:
8
/ \
10 6
/ \ / \
11 9 7 5
#include <iostream>using namespace std;class CTwoTree{public: struct BSTreeNode { int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node }; CTwoTree() { proot = NULL; } void CAddNode(int m_nValue, BSTreeNode * &p) { if(p == NULL) { p = new BSTreeNode; p->m_nValue = m_nValue; p->m_pLeft = NULL; p->m_pRight = NULL; return; } if(m_nValue > p->m_nValue) { CAddNode(m_nValue, p->m_pRight); } else if(p->m_nValue > m_nValue) { CAddNode(m_nValue, p->m_pLeft); } } void CAddNode(int m_nValue) { CAddNode(m_nValue, proot); } void swap(BSTreeNode * &p) { BSTreeNode * tmp = p->m_pLeft; p->m_pLeft = p->m_pRight; p->m_pRight = tmp; } void mirror(BSTreeNode * p) { if(p == NULL) return; swap(p); mirror(p->m_pLeft); mirror(p->m_pRight); } void mirror() { mirror(proot); } void deleter(BSTreeNode *p) { if(p == NULL) return; deleter(p->m_pLeft); deleter(p->m_pRight); } ~CTwoTree() { deleter(proot); }private: BSTreeNode *proot;};int main(int argc, char *argv[]){ CTwoTree a; a.CAddNode(10); a.CAddNode(6); a.CAddNode(4); a.CAddNode(8); a.CAddNode(7); a.CAddNode(9); a.CAddNode(14); a.CAddNode(12); a.CAddNode(16); a.mirror(); return 0;}
0 0
- <仅是自己做笔记。。。系列-7>输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 15、输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像,
- 输入一颗二元查找树,将该树转换为它的镜像
- 【算法】输入一颗二元查找树,将该树转换为它的镜像
- 15.输入一颗二元查找树,将该树转换为它的镜像
- 15.输入一颗二元查找树,将该树转换为它的镜像
- No15、输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- No15_输入一颗二元查找树,将该树转换为它的镜像,
- 输入一颗二元查找树,将该树转换为它的镜像
- 15 输入一颗二元查找树,将该树转换为它的镜像
- 13.输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 一个简单的使用Quartz和Oozie调度作业给大数据计算平台执行
- 学习贪吃蛇JS项目实战笔记3
- 360我要接单登陆-Token解密Java代码
- eclipse中jsp错误javax.servlet.http.HttpServlet" was not found on the Java Build Path
- centos6 不能联网
- <仅是自己做笔记。。。系列-7>输入一颗二元查找树,将该树转换为它的镜像
- leetcode 301 : Remove Invalid Parentheses
- Ubuntu切换到root权限的几种方法
- 惠普测试管理工具ALM使用-发布和周期
- 机器学习之python基础(三)
- R语言中如何读取Excel
- excel自动转换为可印刷版式:目录的自动生成
- 用GDB调试程序(二)
- hdu5318The Goddess Of The Moon 矩阵快速幂