二叉树的镜像
来源:互联网 发布:超次元矩阵狂三 编辑:程序博客网 时间:2024/05/28 20:18
#include <iostream>using namespace std;/**分析:利用画图求镜像二叉树,过程为首先判断二叉树的根节点是否存在, 如果存在则判断二叉树是否只有一个树根节点如果不是的话,则依次调换 根节点的左右子树,使用前序遍历整个树根 这里以先序遍历生成二叉树 **/#define Nil 0typedef struct BiTree { int value ; struct BiTree * leftChild; struct BiTree * rightChild;}BiTree;typedef BiTree * BiLink;int a[100]={1,2,0,4,5,0,0,0,3,6};int length = 0;void createBiTree(BiLink * T){ int value = 0; value = a[length++]; if(value == Nil){ *T = NULL; }else { *T = (BiLink)malloc(sizeof(BiTree)); (*T)->value = value; createBiTree(&(*T)->leftChild); createBiTree(&(*T)->rightChild); }}void PreInorder(BiLink T){ if(T == NULL) return ; cout<<T->value<<endl; PreInorder(T->leftChild); PreInorder(T->rightChild);}void getMirrorTree(BiLink * T){ BiLink Head = * T; if(Head == NULL) return ; if(Head->leftChild == NULL && Head->rightChild == NULL) return ; BiLink temp = Head->rightChild; Head->rightChild = Head->leftChild; Head->leftChild = temp; if(Head->leftChild){ getMirrorTree(&Head->leftChild); } if(Head->rightChild){ getMirrorTree(&Head->rightChild); }}int main(int argc, const char * argv[]) { BiLink T; createBiTree(&T); getMirrorTree(&T); PreInorder(T); return 0;}
0 0
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 《第一行代码》笔记——第2章 先从看得到的入手—探究活动
- 行列式计算方法(1)
- Java 实例
- 使用ibping命令来测试RDMA 连接性
- 在spring中使用数据校验
- 二叉树的镜像
- iBET Online Casino Labour Day Free RM10 to New Member(iBET, iBET Free Credit Promotion, iBET Labour
- Volley请求
- Android 自动填充短信验证码
- JavaScript之对象、构造函数、包装类
- sql server t-sql脚本转成oracle plsql
- 遍历嵌套Map
- clips系列二-clips调用外部函数
- HDU 6019 set