二叉树的镜像
来源:互联网 发布:中文建模软件 编辑:程序博客网 时间:2024/05/06 21:35
题目描述:
输入一个二叉树,输出其镜像。
输入:
输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000,n代表将要输入的二叉树节点的个数(节点从1开始编号)。接下来一行有n个数字,代表第i个二叉树节点的元素的值。接下来有n行,每行有一个字母Ci。
Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。
Ci=’l’表示第i个节点有一个左孩子,紧接着是左孩子的编号。
Ci=’r’表示第i个节点有一个右孩子,紧接着是右孩子的编号。
Ci=’z’表示第i个节点没有子孩子。
输出:
对应每个测试案例,按照前序输出其孩子节点的元素值。若为空输出NULL。
样例输入:
7
8 6 10 5 7 9 11
d 2 3
d 4 5
d 6 7
z
z
z
z
样例输出:
8 10 11 9 6 7 5
#include<stdio.h>#include<stdlib.h>#include<string.h>int NUM;//全局变量,用来控制输出格式typedef struct node{ int data; struct node *lchild; struct node *rchild;}tnode,*tree;void creatTree(tnode *T,int n){ for(int i=0;i<n;i++) { scanf("%d",&T[i].data); T[i].lchild=NULL; T[i].rchild=NULL; } char flag; int index1,index2; for(int i=0;i<n;i++) { scanf("\n%c",&flag);//必须加换行符,如果只按Enter键,就表示输入两个字符\r\n switch(flag) { case 'd': scanf("%d",&index1); T[i].lchild=&T[index1-1]; scanf("%d",&index2); T[i].rchild=&T[index2-1]; break; case 'l': scanf("%d",&index1); T[i].lchild=&T[index1-1]; break; case 'r': scanf("%d",&index1); T[i].rchild=&T[index1-1]; break; case 'z': break; } }}void mirrorTree(tnode *T){ tnode *p; if(T) { p=T->lchild; T->lchild=T->rchild; T->rchild=p; mirrorTree(T->lchild); mirrorTree(T->rchild); }}void printTree(tnode *T)//前序遍历{ if(T) { if(NUM-->1) printf("%d ",T->data); else printf("%d\n",T->data); //最后一个数字没空格 printTree(T->lchild); printTree(T->rchild); }}int main(){ tnode T[100]; int n; while(scanf("%d",&n)!=EOF) { if(n==0) printf("NULL\n"); else { NUM=n; creatTree(T,n); mirrorTree(T); printTree(T); printf("\n"); } }}
总结:输出格式很重要
0 0
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- CUDA学习,查看device性能参数
- [LeetCode]-009-Palindrome Number
- JSON的方法--parse()
- 自定义事件为什么要重载clone方法
- cocostudio骨骼动画的加载与换装
- 二叉树的镜像
- Spring 定时器
- Program work 17. Selection Sort in Java
- 学习笔记-切换界面时显示内容不重复创建
- 《netty权威指南》4.3利用LineBasedFrameDecoder解决TCP粘包问题
- 剑指offer 面试题29—数组中出现次数超过一半的数字
- 判断某个字符串 存在于某个字符串中
- jquery checkbox
- java架包(jar,没有混淆的)反编译出文件