#define OK 1
#define ERROR 0
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef int Status;
typedef struct BiTNode
{TElemType data;struct BiTNode *lchild,*rchild; //左右孩子指针
}BiTNode,*BiTree;void CreateBiTree(BiTree * T)   //二叉树的建立
{TElemType ch;scanf("%c",&ch);if(ch=='#'){*T=NULL;}else{*T=(BiTree)malloc(sizeof(BiTNode));}if(!*T){return ;}else{(*T)->data=ch;CreateBiTree(&(*T)->lchild);    //构造左子树CreateBiTree(&(*T)->rchild);    //构造右子树}
}void PreQrderTraverse(BiTree * T)   //前序遍历
{if(*T==NULL){return ;}printf("%c ",(*T)->data);PreQrderTraverse(&(*T)->lchild);    //先序先遍历左子树PreQrderTraverse(&(*T)->rchild);    //然后在遍历右子树
}void swap(BiTree * T1,BiTree * T2)
{BiTree temp;temp=(*T1);(*T1)=(*T2);(*T2)=temp;
}//设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置
void BiTree_change_left_right(BiTree * T) {if (*T) {BiTree_change_left_right(&(*T)->lchild);BiTree_change_left_right(&(*T)->rchild);swap(&(*T)->lchild,&(*T)->rchild);}}int main()
{BiTree T;printf("创建二叉树:\n");CreateBiTree(&T);printf("前序遍历的结果为: ");PreQrderTraverse(&T);printf("\n镜面影射后:\n");BiTree_change_left_right(&T);printf("前序遍历的结果为:");PreQrderTraverse(&T);
}

设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置相关推荐

  1. 【C++】公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请设计一个“高效”的算法求解。

    题目分析 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?请设计一 ...

  2. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  3. 设计算法统计二叉树(采用二叉链存储结构)中结点值为x的结点个数_20题,算法工程师能力评估测试来啦...

    试题部分 1. class program { static void Main(string[] args) { int i; i = x(x(8)); } static int x(int n) ...

  4. 如何利用Simulink来设计一个AEB的算法,并通过SCANeR仿真来测试?

    工作太忙,这篇文章断断续续花了2个月才写出来. 累. 所以看名字就知道我是怎么干的:这是SCANeR和Simulink联合仿真的一个例子. 所以你要想看懂这篇这篇文章,我是默认你会Matlab/sim ...

  5. 15拆分成3个不同的自然数_一个简单的算法 - 将一个正整数拆分成指定几个正整数的组合...

    假设我们这里有个正整数18,这里需要把18拆分成1 2 3 5 10的组合,那么输出的结果应该是: ==> 10+5+3 eg:->79 ----->7*10+5+3+1 大数优先 ...

  6. 算法与数据结构——算法基础——二叉树(java)(b站左程云课程笔记整理)

    二叉树 了解一个二叉树的递归序.先序.中序.后序 递归序:每个数会被打印三次(可以理解为前中后) 先序:头左右 中序:左头右 后序:左右头 public static class Node {publ ...

  7. 要求先设计一个 moveable 可移动接口(声明向前、后、左、右方法), 然后分别设计 3 个类 , 即汽车 Car 、轮船 Ship 、飞机 Aircraft 来实现该接口 , 最后设计主程序实现

    import java.util.Scanner;interface moveable{public void front();public void back();public void left( ...

  8. 设n个不同的整数排好序后存于T[1..n]中,若存在一个下标i(1≤ i ≤ n),使得T[i]=i。试设计一个有效算法找到这个下标,要求算法在最坏情形下的计算时间为O(log n)

    转自http://zmp1123.blog.163.com/blog/static/1193291592013314581911/ 设n 个不同整数排好序后存于T[0:n-1]中,若存在一个下标i,0 ...

  9. 设计一个函数,要求能将一个正整数 n 按反序输出,n 的位数不定。例 如,123 输出 321。

    设计一个函数 要求能将一个正整数 n 按反序输出,n 的位数不定. 例 如,123 输出 321. #include<iostream> using namespace std; int ...

最新文章

  1. 【Python-ML】SKlearn库原型聚类KMeans
  2. Python:高阶错误
  3. 刚刚!第七次人口普查出炉!男性比女性多3490万,老龄化进一步加深
  4. xshell终端中文乱码解决
  5. 极光推送 简书android,(Android)react-native集成极光推送
  6. 基于OpenCV和C++实现最大阈值分割算法
  7. 都说人工智能入门难?但80%的人都错了……
  8. phpstrom查看代码总行数_程序员实用工具,推荐一款代码统计神器GitStats
  9. Win10桌面上:[ 我的电脑 ] 图标不见了
  10. DL实战(3):cfNet- Matlab配置
  11. FreeSWITCH ODBC cdr
  12. SAP中销售订单中的条件类型修改控制问题配置分析
  13. CNTV视频回看下载地址
  14. 如何去除Matlab里面的ans?
  15. Linux监控系统之Zabbix
  16. win10安装账户卡住_安装win10系统卡住不动的原因和处理方法
  17. 2023年软考报哪门比较好?
  18. 串口通信协议--UART、RS-232、RS-485、RS-422
  19. 普通程序员,如何转为当前紧缺的大数据相关人才?
  20. [总结]FFMPEG命令行工具之ffmpeg详解

热门文章

  1. class函数 python_python中class函数如何使用
  2. 21世纪发展最快的数据科学的总结
  3. 2022-2028全球及中国智能手机摄像头模组行业研究及十四五规划分析报告
  4. NETGEAR拒绝连接请求_iOS 14:为什么APP请求本地网络?想要扫描本地网络追踪
  5. 如何理解代码覆盖率?
  6. 安装麦咖啡8.7出现--错误1920,怎么办? 解决办法
  7. xcode写在_迷失在Xcode领域
  8. 三星借力北京奧運東風
  9. CSDN PC端网站及其部分功能产品体验的一点分析
  10. 菜鸟看马云卸任以及未来的阿里巴巴