package java2019;
import java.util.Stack;
//判断两个序列是否为栈的压入和弹出序列
public class Demo19 {
public boolean isPopOrder(int[] push_array,int[] pop_array){
Stack<Integer> stack = new Stack<Integer>();
int popIndex = 0; //用于标识弹出序列的位置
for(int i=0;i<push_array.length;i++){
stack.push(push_array[i]); //先逐个压入
//栈不为空,且栈顶元素等于弹出序列
while(!stack.empty()&&stack.peek()==(Integer)pop_array[popIndex]){
stack.pop();
popIndex++; //弹出序列向后移动一位
}
}
return stack.empty();
}
public static void main(String[] args) {
Demo19 d19 = new Demo19();
int[] in = {1,2,3,4,5};
int[] out = {2,5,4,3,1};
System.out.println(d19.isPopOrder(in, out));
}
}
19.判断是否为栈的输入输出序列
最新推荐文章于 2022-09-27 19:16:48 发布