数据结构中n个数据依次入栈,出栈顺序有多少种?谁能帮忙证明下

2025-02-27 11:26:01
推荐回答(1个)
回答1:

n个数据依次入栈,出栈顺序种数的递推公式如下:
F(n)=∑(F(n-1-k)*Fk);其中k从0到n-1
已知F0=1,
F1=F0*F0=1
F2=F1*F0+F0*F1=2
F3=F2*F0+F1*F1+F0*F2=5
……
证明的话,对于n个数据,我只看第一个数据的出入栈顺序:
第一个数据入栈到出栈之间可以包含0,1,2…n-1个数据的出入栈,
相应的,第一个数据出栈之后,还有n-1,n-2…2,1,0个数据需要出入栈
根据组合数学里面的乘法原理,需要把第一个数据出栈前后的种数相乘
根据加法原理,需要把第一个数据出入栈的n种方式全加起来
于是就得到了那个递推公式,不过,要找出一个直接计算Fn的公式似乎不太好办。