关于出栈序列的个数的计算方法

首先是结论:n个不同元素进栈,出栈序列的个数为卡特兰数:1/(n+1)*Cn2n

如a,b,c依次入栈,出栈时有可能:

  1. a进栈;b进栈;c进栈;一起出栈,最终为cba
  2. a进栈出栈;b进栈出栈;c进栈出栈,最终为abc
  3. a进栈出栈;b进栈;c进栈出栈;b出栈,最终为acb
  4. a进栈;b进栈出栈;c进栈出栈;a出栈,最终为bca
  5. a进栈;b进栈出栈;a出栈;c进栈出栈,最终为bac

备注:如果要求列出所有可能,先写出所有情况再挨个分析是最稳妥的方法:

eg:入栈顺序为1,2,3,4,出栈顺序有哪几种?1234√ 1243√ 1324√ 1342√ 1423× 1432√
2134√ 2143√ 2314√ 2341√ 2413× 2431√
3124× 3142× 3214√ 3241√ 3412× 3421√
4123× 4132× 4213× 4231× 4312× 4321√
14种可能,10种不可能


猜你喜欢

转载自www.cnblogs.com/yueMa/p/9250164.html
今日推荐