定义

卡特兰数是一个数列

通项公式为

卡塔兰数有三种计算方式

应用场景: 栈混洗 n 个括号能构成的合法表达式 个节点的二叉树形态 个互异节点的 种类 个叶节点的真二叉树种类(度要么为0,要么为2)

场景答案
n 对括号合法表达式
n 个节点的二叉树形态
n 个互异节点的 BST
n 个叶节点的真二叉树
栈混洗(n 个元素)

栈混洗

对于给定数值为 的一个数列,求其出栈顺序?

求解步骤:

  1. 确定 操作步骤数
  2. 根据 不同步骤 进行排列组合
  3. 得出答案

具体求解

分析

给定的 个数,从入栈到出栈,一定有且仅有 次操作,故共有 种可能,但是
其中含有不合法的可能。

计算不合法的可能个数 需要利用 折线原理 进行几何分析

在折线图中只有 右上右下 两个操作,对应的就是 入栈和出栈。

如图所示,当折线达到 ,则该折线一定代表违法操作。

  1. 随意假设第 个操作时折线刚好到达 ,设该点为 , 终点为 ;

  2. 又因为 从 的折线数,由于对称,在图中可以改为由 的折线数。

  3. 再回到全局中去看,因为从原点 到点 是一定经过 这条线的,故不用管 的位置

  4. 因此,求解 违法操作数 等价于 求从原点 到 点 的 所有折线数:

  5. 最后可以计算出:一个 位序列,从入栈到出栈,具有 中可能

视频解析

折线原理

Catalan数的应用和证明

好题,非常适合用 折线定理