`
crane136
  • 浏览: 5880 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

入栈和出栈问题

阅读更多
  首先要知道对n个元素入栈,其出栈顺序共有多少种情况?这个结果是(2n)!/(n+1)n!n!,即如果有3个元素,那么出栈的顺序共有5中情况。
   A B C 的顺序入栈,那么出栈情况如下:
     1> ABC  2> BAC  3>BCA  4>CBA 5>ACB

出栈问题归根到底为:先入后出原则。
     如果第一个出栈的为A,那么BC还没有入栈,所以后面的出栈顺序可以是BC或者CB,其中BC表示B先入栈,而后出栈,C再入栈,最后出栈,其中B置顶。而CB则是BC入栈,而后先入后出的顺序出栈。

     不可能的情况是CAB ,如果第一个出栈的是C,则表示AB已经入栈,而且是A先入B后入栈,根据先入后出原则,一定是BA,而不是AB。



  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics