public static void judgeSeq(int[] pushSeq,int[] dataSeq){
if(pushSeq==null||dataSeq==null) return;
int pushLength = pushSeq.length;
int dataLength = dataSeq.length;
if(pushLength==0||dataLength==0||pushLength!=dataLength){
return;
}
Stack<Integer> stack = new Stack();
int i=0,j=0;
stack.push(pushSeq[i++]);
while(j<dataLength&&i<pushLength){
if(stack.empty()){
stack.push(pushSeq[i++]);
}
if(dataSeq[j]==stack.peek()){
stack.pop();
j++;
}
else {
while(i<pushLength&&pushSeq[i]!=dataSeq[j]){
stack.push(pushSeq[i++]);
}
if(i==pushLength) break;
i++;j++;
}
}
if(i==pushLength&&j==dataLength){
System.out.println(true);
}
else System.out.println(false);
}判断栈的压入,弹出序列是否匹配
最新推荐文章于 2023-10-23 08:55:20 发布
本文介绍了一种用于判断两个序列是否匹配的算法,通过使用栈数据结构来优化比较过程,提高了效率。
349

被折叠的 条评论
为什么被折叠?



