栈的出栈序列个数

Posted 皮皮虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈的出栈序列个数相关的知识,希望对你有一定的参考价值。

有n个数$1,2,3,4,...n$依次入栈,不必等全部的数入完再出,问有多少个出栈顺序?

 

解:   

   设问题答案是$f(n)$ ,$f(1)=1,f(2)=2$

分n种情况:

1最后出来: $ f(n)$

k最后出来:$f(k-1)*f(n-k)$

所以  $$f(n+1)=f(n)+f(n-1)f(1)+f(n-2)f(2)+......f(k)f(n-k)+......f(n)$$

这是Catalan数的递推式:

  得$$f(n)=\frac{C^{n}_{2n}}{n+1}$$

以上是关于栈的出栈序列个数的主要内容,如果未能解决你的问题,请参考以下文章

判断栈的出栈序列是否正确

可能的出栈序列问题

判断出栈序列是否可能是某个入栈序列的出栈序列,C++

进栈序列为(1,2,3..,n)有多少种出栈顺序

一个栈的入栈序列为ABCDEF,则不可能的出栈序列是

对一组数1,2,3……n进行进出栈操作。其进栈的顺序从小到大。问:这样得到的出栈数组有多少种可能