//最近听邓俊辉老师的课学数据结构,在这里对学到的知识做一些比较详细易懂的整理、梳理。
概念:将栈A的顶元素弹出并压入栈S,或将栈S的顶元素弹出并压入栈B中,经过一系列的操作后,A中元素全部转入B中,则称之为A的一个栈混洗。这里标记 尖括号<:栈顶,方括号 ] :栈底 ,两个栈的弹出与压入次序不一样由此产生了在B栈的不同排序方式。
例如A:1 2 3的混洗结果可能有 123,132,213,231,321,不可能出现312 (原因如下图右上角)
经观察,任意三个元素出现的排序方式与其他元素无关,如果出现了 k i j 的排序方式,必定不是栈混洗的结果——充要条件
如果不出现312 的模式( j+1,i,j )那必然是栈混洗的结果,312模式称之为禁形。
甄别方法有三种思路:
不断枚举i,j,k的组合 复杂度 O(n^3&
本文发布于:2024-01-29 07:11:53,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648351813589.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |