【二叉树】先序序列为a,b,c,d 的不同二叉树的个数

rosefunR 2019-07-23 10:56:40  8639  收藏 17
分类专栏: LeetCode
版权
1.问题
先序序列(前序序列)为a,b,c,d 的不同二叉树的个数是?

2.解决思路
已知,前序序列和中序序列可以唯一地确定一棵二叉树。如果我们把前序序列看作为入栈次序,把中序序列看作为出栈次序,那么题意相当于“以序列 a,b,c,d 为入栈次序,则出栈序列的个数为?”

比如:

a            
 /   \
b    d         
 \     
  c            
1
2
3
4
5
前序遍历:(父左右)a bc d
中序遍历:(左父右)bc a d

由前序遍历,a 是父节点;那么,由中序遍历, bc 就是左子树; d是右子树;
由前序遍历,b是父节点;那么,由中序遍历, c 就是右子树;
得到的二叉树是唯一的。

因此,这个二叉树可以由以下的前序序列和中序序列确定:

前序序列,先压入 ab; 压出的 b 当做中序序列;再压入 c, 再压出 c, 再压出 a ;再压入 d, 再压出 d .

卡特兰数

一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

f ( n ) = C 2 n n − C 2 n n − 1 f(n) = C_{2n}^{n} - C_{2n}^{n-1}
f(n)=C 
2n
n
​    
 −C 
2n
n−1

如何单纯按照先序序列来看的话,就是,把序列的每个点看作一个根节点,就相当于左子树和右子树可能个数两部分相乘。

因此,本题的答案是 14。
————————————————
版权声明:本文为CSDN博主「rosefunR」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rosefun96/article/details/96974507

【二叉树】先序序列为a,b,c,d 的不同二叉树的个数相关推荐

  1. 先序序列为a、b、c、d的不同二叉树的个数是多少(卡特兰数)

    除了逻辑清晰的挨个画出来之外,还有一种方法需要大家牢记! 因为前序序列和中序序列可以唯一地确定一棵二叉树,并且题目已经给出了先序序列,所以我们只需要知道由该先序序列可以确定多少个中序序列即可,确定多少 ...

  2. 【例题】已知二叉树的先序序列和中序序列构造二叉树

    做下列例题之前请先转到:[教程]了解原理和方法.然后再做下面的例题. [例题1]一棵二叉树的先序遍历序列为EFHIGJK,中序遍历序列为HFIEJKG,则该二叉树根结点的右孩子为() A. H B. ...

  3. 二叉树的先序、中序、后序、层序遍历方式详解,由遍历序列构造二叉树过程详解以及C++代码详细实现

    二叉树的遍历 树与二叉树的定义.性质,二叉树的顺序存储结构.链式存储结构 二叉树的遍历是指按某条搜索路径访问树中每个结点,使得每个结点均被访问一次,而且仅被访问一次.由于二叉树是一种非线性结构,每个结 ...

  4. 用数学归纳法证明二叉树的先序遍历序列和中序遍历序列可以唯一确定一颗二叉树

    用数学归纳法证明二叉树的先序遍历序列和中序遍历序列可以唯一确定一颗二叉树. 首先说明:思想来自文都考研洪老师.包括逻辑框架的搭建,此篇文章为框架搭建完成后将细节补充完整. 首先,用到的数学的证明思想是 ...

  5. 刻意练习:LeetCode实战 -- 二叉树的后序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

  6. 二叉树的先序遍历(非递归)

    虽然递归简单理解,但是用递归内存开销大,耗时长,性能往往不如非递归方式 所以这里通过栈,用非递归方法实现二叉树的先序遍历 二叉树的存储结构定义: typedef struct node{int dat ...

  7. 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java

    <LeetCode力扣练习>第94题 二叉树的中序遍历 Java 一.资源 题目: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,nul ...

  8. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...

    已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...

  9. 树结构练习——排序二叉树的中序遍历(二叉搜索树)

    树结构练习--排序二叉树的中序遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是--(1).每 ...

最新文章

  1. OpenGL模板 Mac Cmake OpenGL(Glut) Template
  2. Android 应用目录分析
  3. 剑指 offer 编程题 C++ 版总结(下)
  4. P4245-[模板]任意模数多项式乘法
  5. 前端学习(892):bom概述
  6. Ubuntu如何卸载安装的软件以FileZilla为例
  7. C++ 中vector的嵌套使用
  8. LeetCode-1052:爱生气的书店老板
  9. 夜猫专业黑帽seo优化服务团队
  10. MySQL 中随机抽样:order by rand limit 的替代方案
  11. java 如何将异常_java中的异常处理
  12. Linux电源管理系统架构和驱动(1)-Linux电源管理全局架构
  13. php 用pdf转html,使用PHP将HTML PDF转换为PDF
  14. Python实现连点器
  15. LTE学习笔记五:LTE两种帧结构
  16. golang中的URL 的编码和解码(转)
  17. 【小程序按钮控制视频播放暂停】
  18. Linux操纵细碎以太网卡的装配及设置-2
  19. Python Windows发出警报声、蜂鸣器、声音报警
  20. 用bridge创建虚拟网桥

热门文章

  1. effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...
  2. cesium鼠标控制键盘_用 Python 控制 鼠标和键盘,花式操作
  3. vc c语言图片处理,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  4. 读《程序是怎样跑起来的》第七章有感
  5. Educational Codeforces Round 25
  6. UAF学习之Adobe reader CVE-2013-3346
  7. Linux下查看进程和线程
  8. 第二百九十、一、二天 how can I 坚持
  9. 基于Spring的Web缓存
  10. chrome浏览器插件开发