G
N
I
D
A
O
L

【数据结构-栈】卡特兰数

卡特兰数公式

  • f(n) = C(2n,n) / (n+1)
  • 计算用途:二叉树形态数,出栈序列数

出栈序列数

【例 1】3 个不同元素依次进栈,能得到多少种不同的出栈序列?

【解】f(3) = C(6,3) / (3+1) = 20 / 4 = 5

【例 2】5 个不同元素依次进栈,能得到多少种不同的出栈序列?

【解】f(5) = C(10,5) / (5+1) = (6 * 7 * 6) / 6 = 42

二叉树形态数

【例】先序序列(前序序列)为 a, b, c, d 的不同二叉树的个数是?

【解】前序序列为入栈次序,中序序列为出栈序列,因为前序序列和中序序列可以唯一确定一棵二叉树,所以相当于“以序列 a, b, c, d 为入栈次序,则出栈序列的个数是?”

f(4) = C(8,4) / (4+1) = 70 / 5 = 14

posted @ 2022-12-19 22:31  漫舞八月(Mount256)  阅读(704)  评论(0编辑  收藏  举报