问题描述
- 一个堆栈中先后有1 2 3 4入栈,请问可能的出栈序列?数据结构作业,谢谢
- 一个堆栈中先后有1 2 3 4入栈,请问可能的出栈序列?数据结构作业,谢谢
解决方案
1432
1342
1324
2341
2431
2143
2134
3421
3241
3214
4321
解决方案二:
有个东西叫Catalan数,可以计算出所有出栈情况个数,
设入栈序列为I(n):12...n,则I(n)有C(2nn)-C(2nn-1)个出栈序列。
具体多少个你可以根据公式自己算,这样不会落下。
解决方案三:
你理解栈先进后出的机制就可以了
解决方案四:
理解堆栈的先进后出是主线。
至于入栈的时候是可以出栈的。
解决方案五:
栈是后进先出的,同时你要知道的是,你可以在元素没有放进去之前从栈中取出元素。
解决方案六:
你需要知道,什么事入栈出栈,比如1234,依次进入,再依次出来就得到4321。
再比如12入栈,然后出栈得到21,再把34入栈,再出栈得到43.最后的出栈顺序就是2143。
依次类推,人手写太繁琐,需要考虑多次,你可以写个栈表的程序。
这个程序在我的博客中有写到,希望对你有所帮助。
时间: 2025-01-03 13:11:33