[sicily]1210. 二叉树
来源:互联网 发布:软件正版化管理制度 编辑:程序博客网 时间:2024/05/19 11:46
1210. 二叉树
Constraints
Time Limit: 1 secs, Memory Limit: 32 MB
Description
在众多的数据结构中,二叉树是一种特殊而重要的结构,有着广泛的应用。二叉树或者是一个结点,或者有且仅有一个结点为二叉树的根,其余结点被分成两个互不相交的子集,一个作为左子集,另一个作为右子集,每个子集又是一个二叉树。
遍历一棵二叉树就是按某条搜索路径巡访其中每个结点,使得每个结点均被访问一次,而且仅被访问一次。最常使用的有三种遍历的方式:
1.前序遍历:若二叉树为空,则空操作;否则先访问根结点,接着前序遍历左子树,最后再前序遍历右子树。
2.中序遍历:若二叉树为空,则空操作;否则先中序遍历左子树,接着访问根结点,最后再前中遍历右子树。
3.后序遍历:若二叉树为空,则空操作;否则先后序遍历左子树,接着后序遍历右子树,最后再访问根结点。
例如图(1)所示的二叉树:
前序遍历的顺序是ABCD,中序遍历的顺序是CBAD,后序遍历的顺序是CBDA。
对一棵二叉树,如果给出前序遍历和中许遍历的结点访问顺序,那么后序遍历的顺序是唯一确定的,也很方便地求出来。但如果现在只知道前序遍历和后序遍历的顺序,中序遍历的顺序是不确定的,例如:前序遍历的顺序是ABCD,而后序遍历的顺序是CBDA,那么就有两课二叉树满足这样的顺序(见图(1)和图(2))。
现在的问题是给定前序遍历和后序遍历的顺序,要求出总共有多少棵不同形态的二叉树满足这样的遍历顺序。
Input
整个输入有两行,第一行给出前序遍历的访问顺序,第二行给出后序遍历的访问顺序。
二叉树的结点用一个大写字母表示,不会有两个结点标上相同字母。输入数据不包含空格,且保证至少有一棵二叉树符合要求。
Output
输出一个整数,为符合要求的不同形态二叉树的数目。
Sample Input
ABCDCBDA
Sample Output
2
Problem Source
ZSUACM Team Member
树的数据结构题,给出确定前序遍历、后序遍历序列,并不能确定树的结构原因就在于:某个节点只有一颗子树,那么它就有相同的前序后序遍历序列。所以,解题关键就在于寻找只有一个孩子的节点。经过观察,得到规律:只有一棵子树的前序假如是AC, 其后序为CA。若有两棵子树,前序为ABC, 后序为BCA。具体代码如下:
#include <iostream>#include <algorithm>#include <math.h>using namespace std; int main(){ string s1,s2; cin>>s1>>s2; int count=0; for(int i=0; i+1<s1.size(); i++) { for(int j=0; j+1<s2.size(); j++) { if(s1[i]==s2[j+1] && s1[i+1]==s2[j]) { count++; break; } } } cout<<(int)pow(2.0,1.0*count);//注意pow(x,y)输出是double类型的。 //system("pause"); return 0; }
- Sicily 1210. 二叉树
- Sicily 1210. 二叉树
- Sicily 1210. 二叉树
- Sicily 1210. 二叉树
- [sicily]1210. 二叉树
- sicily 1210. 二叉树
- Sicily 1210 二叉树
- sicily 1210 二叉树
- Sicily 1210(二叉树)
- Sicily 1210 二叉树
- Sicily 1210 二叉树
- Sicily 1935. 二叉树重建
- Sicily 1935. 二叉树重建
- sicily 1935. 二叉树重建
- Sicily 1935 二叉树重建
- Sicily 1935 二叉树重建
- Sicily 1935. 二叉树重建
- [sicily]1935. 二叉树重建
- 【笨木头Unity】入门之旅006:Demo之四处找死(一)_场景和主角
- 微信开发书籍资源分享
- SQL与PL/SQL基础操作
- hdu 5534 dp
- vb.net如何判断shell完成,或者等待shell完成
- [sicily]1210. 二叉树
- webservice
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- 大神编码1
- 软件架构师职责
- poj--3678--Katu Puzzle(2-sat 建模)
- Note-04-数组
- 文件操作
- 【Swift】SpriteKit开发iOS游戏——场景切换