史蒂芬闰土 2017-06-10 01:32 采纳率: 40%
浏览 1573
已采纳

诚求:理解栈的出入顺序。

看了很多帖子,还是很模糊啊。不谈代码,光谈思想。
字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串。怎么理解那一个不能成立的字符窜组合,为什么它不成立,剩下5个是怎么成立的。

  • 写回答

5条回答 默认 最新

  • 战在春秋 2017-06-10 02:44
    关注

    一共有6种组合:
    1) ABC 即A进A出,B进B出,C进C出
    2) ACB 即A进A出,B进C进,C出B出
    3) BAC 即A进B进,B出A出,C进C出
    4) BCA 即A进B进,B出C进,C出A出
    5) CBA 即A进B进,C进C出,B出A出

    栈的性质是 后进先出, 以上5种组合是可以的。
    6) CAB
    这是不行的,因为C已经出栈,B在A的上面,这时,A在B前面出来是不可能的。

    想象成一个水杯,往水杯里放积木,因为水杯只有上面的开口,
    显然只有压在上面的积木出来后,下面的积木才能出来。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?