1.判断出栈序列是否合法
模拟入栈过程,为了测试出栈序列是否正确,将元素按顺序入栈进行模拟。如果能够利用栈模拟出出栈次序,说明序列正确。
将序列存在队列中,将元素按顺序入栈,如果和队列首部元素相等,则弹出队列和栈,直到栈为空。
最后栈不为空的话,说明序列不合法。
举个例子
入栈:入栈序列ABCDEF 出栈序列FECDBA
F出栈:入栈序列ABCDE 出栈序列ECDBA
E出栈:入栈序列ABCD 出栈序列CDBA
D!=C 所以不合法
模拟入栈过程,为了测试出栈序列是否正确,将元素按顺序入栈进行模拟。如果能够利用栈模拟出出栈次序,说明序列正确。
将序列存在队列中,将元素按顺序入栈,如果和队列首部元素相等,则弹出队列和栈,直到栈为空。
最后栈不为空的话,说明序列不合法。
举个例子
入栈:入栈序列ABCDEF 出栈序列FECDBA
F出栈:入栈序列ABCDE 出栈序列ECDBA
E出栈:入栈序列ABCD 出栈序列CDBA
D!=C 所以不合法