算法训练 求先序排列
来源:互联网 发布:chart.js 更新数据 编辑:程序博客网 时间:2024/05/16 12:46
问题描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。
输入格式
两行,每行一个字符串,分别表示中序和后序排列
输出格式
一个字符串,表示所求先序排列
样例输入
BADC
BDCA
样例输入
BADC
BDCA
样例输出
ABCD
#include<stdio.h>#include<string.h>#define MAX 10char mid[MAX];char later[MAX];int tree(int start1,int end1,int start2,int end2){int i;char temp=later[end2];if(start1>end1 || start2>end2){return 0;}else{printf("%c",temp);for(i=start1;i<=end1;i++){if(temp==mid[i]){/*printf("左边:%d--%d %d--%d\n",start1,i-1,start2,start2+(i-1-start1));for(int j=start1;j<=i-1;j++){printf("%c",mid[j]);}printf("\n");for(int j=start2;j<=start2+(i-1-start1);j++){printf("%c",later[j]);}printf("\n");printf("右边:%d--%d %d--%d\n",i+1,end1,start2+(i-1-start1)+1,end2-1);for(int j=i+1;j<=end1;j++){printf("%c",mid[j]);}printf("\n");for(int j=start2+(i-1-start1)+1;j<=end2-1;j++){printf("%c",later[j]);}printf("\n");*/tree(start1,i-1,start2,start2+(i-1-start1));tree(i+1,end1,start2+(i-1-start1)+1,end2-1);return 0;}}}}int main(){int len;scanf("%s%s",mid,later);len=strlen(mid);tree(0,len-1,0,len-1);return 0;}
1 0
- 算法训练 求先序排列
- 算法训练 排列问题
- 算法训练 排列问题
- 算法训练 全排列 JAVA
- 蓝桥杯 ALGO-20 算法训练 求先序排列 Java版
- 算法训练 求先序排列(二叉树的建立)
- 字符串的全排列【递归算法训练】
- 蓝桥杯训练:算法提高 排列式
- ACM算法训练之——下一个排列
- 【专题训练】【递推算法】 单峰排列 解题报告
- 【C语言训练】排列
- 排列算法
- 排列算法
- 排列算法
- 排列算法
- 排列算法
- 排列算法
- 积跬步至千里——算法强化训练(2)全排列和组合数
- hdu 3665 seaside floyd
- docker push 遇到如下问题解决方法
- PowerShell 读取 Goldengate 进程转为数组插入到sql server中
- jQuery对复选框的全选,全不选,反选等的操作
- 迪杰斯特拉算法
- 算法训练 求先序排列
- An Invitation to Algebraic Geometry
- 高内聚与低耦合
- 工程管理器及makefile模板的使用
- 陆源:阿贝尔对椭圆函数论的贡献[附椭圆函数、模形式(g_2,g_3)、模函数的C++程序计算]
- hdu 5461 Largest Point
- 前端自动化神器-gulp
- 小白心路历程
- hdu 5949 Relative atomic mass