回 帖 发 新 帖 刷新版面

主题:[讨论]一道题目都读不懂的题

【问题描述】
栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请编程求出对于给定的n,计算并输出由操作数序列1,2,……,经过一系列操作可能得到的输出序列总数。
【输入】
     一个整数n(1<=n<=15)
【输出】
    一个整数,即可能输出的序列的总数目。
【样例】
work4_2.in
3

work4_2.out
5





请求各位帮忙看看,最好能用栈做。谢谢
[em59][em56][em6]

回复列表 (共2个回复)

沙发


  你刚学数据结构?
  这道题就是求1..n可能的出栈情况之和。
  用递归做就可以了。

板凳


   比如说:输入3
     则 栈内数字为 1,2,3
       则 出栈的可能的情况为:
         (3,2,1)(2,3,1)(2,1,3)...

我来回复

您尚未登录,请登录后再回复。点此登录或注册