先进后出,不一定要全部入栈之后再出栈,没入栈完也可以先出栈。
规律:
出栈的每一个元素的后面,其中比该元素先入栈的一定按照入栈逆顺序排列。
举例说明:
已知入栈顺序: 1 2 3 4 5
判断出栈顺序: 4 3 5 1 2
结果:不合理,原因是出栈元素3之后有 5 1 2 这三个元素,其中1 2 是比3先入栈的,根据规律,这两个出栈的顺序必须和入栈顺序相反,
也就是 2 1 出栈,不可能按照1 2 顺序出栈。
已知入栈顺序: 1 2 3 4 5
判断出栈顺序: 2 1 3 5 4
结果:合理,逐个判断,2后面比它先入栈的是“1”,单个元素当然可以;1后面无比它先入栈的,故不需要比较;3后面无比它先入栈的,故不需要比较;
5后面比它先入栈的是“4”,单个元素当然可以,4后面没有元素,不需要比较。
转自: