关于栈顺序插入的弹出顺序的思考

例如ABC 将其顺序入栈。
考虑其可能出栈的结果
则 CAB 不可能发生。 C若想弹出则,必须先弹出B。
例如ABCD 顺序入栈,同理考虑其出栈可能。
则ADBC、BDAC、CABD、CADB、DABC、DACB、DBAC、DBCA、DCAB
这九种不行。
ADBC D若出栈,先出C。
BDAC D若出栈,先出C。
CADB C若出栈,先出B。
DABC D若出栈,先出BC。
DACB 同理
DBAC DBCA ,D若出栈先出C。
DCAB C若出栈先出B。
总结一点规律。
当后入栈的元素,右邻接一个比它前两个入栈的元素,检验,该元素前一个元素是否已经出栈。
不满足,则为不可能结果。

猜你喜欢

转载自blog.csdn.net/cruel2436/article/details/84954041