URAL 1136 Parliament [DFS树型转换]
来源:互联网 发布:python教学视频哪个好 编辑:程序博客网 时间:2024/05/17 02:12
题意:给定一棵二叉排序树的中序转换为前序的逆序输出
思路:后序遍历找到根,再在中序遍历的相应位置找到分成的两棵子树,依次进行遍历。
#include <stdio.h>#include <algorithm>#include <iostream>using namespace std;#define MAX 3002int pos[MAX];int a[MAX];int out[MAX];int n,c;int find(int x){ for(int i=0;i<n;i++) if(x==a[i]) return i; return -1;}//s,e为中序的起点、终点,ss,ee为后序的起点、终点void build(int s,int e,int ss,int ee){ if(s>e||ss>ee) return; int root=find(pos[ee]); out[c++]=pos[ee]; build(s,root-1,ss,ss+root-s-1); build(root+1,e,ss+root-s,ee-1);}int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&pos[i]); a[i]=pos[i]; } sort(a,a+n); build(0,n-1,0,n-1); for(int i=n-1;i>0;i--) printf("%d ",out[i]); printf("%d\n",out[0]); return 0;}/*测试:Sample Input91 7 5 21 22 27 25 20 10Sample Output27 21 22 25 20 7 1 5 10*/
- URAL 1136 Parliament [DFS树型转换]
- URAL 1136 Parliament
- Ural 1136 Parliament / 后序遍历二叉树
- ural 1136. Parliament -搜索二叉树
- Ural 1136. Parliament
- ural 1136. Parliament
- URAL 1136 Parliament 二叉树水题 BST后序遍历建树
- ural 1136. Parliament 二叉树构造和遍历
- ural 1136. Parliament 中后序建树
- ural 1136. Parliament (通过后序遍历构建二叉搜索树)
- timus 1136 Parliament(思路过程)
- ural 1033. Labyrinth(dfs)
- ural 1171 DFS+DP
- URAL 1033 Labyrinth(DFS)
- ural 1119. Metro DFS
- ural 1033. Labyrinth dfs
- URAL 1033 Labyrinth (DFS)
- URAL 1242 Werewolf (DFS)
- 用汇编的眼光看C++ (之x86汇编)
- 装备设计思路整理
- 将Java项目打包成可执行文件(.exe)
- 用汇编的眼光看C++(开篇)
- 有效的使用和设计COM智能指针——条款25:思考兼容取地址操作符带来的若干问题
- URAL 1136 Parliament [DFS树型转换]
- Linux调试
- doc
- fork()使用(一)
- JavaScript基础学习笔记(一)——JavaScript简介、 如何实现JavaScript、把 JavaScript 放置到何处、JavaScript语句
- JSTL标签库
- 功能强大的编辑器——Vi
- 解决tortoiseSVN冲突的方法
- FreeRADIUS介绍