栈的push,pop序列 (二)

2014-11-24 03:09:14 · 作者: · 浏览: 2
push!=null&&pop!=null&&length>0){
//检查pop序列中每一个字符
while(popindex //当栈顶字符和pop中要访问的字符不一样时候,将push中未入栈的字符入栈
while(list.size()==0 || list.getLast()!= pop.charAt(popindex)){
if(pushindex>=length)break;
list.add(push.charAt(pushindex));
pushindex++;

}
//入栈完毕后,如果栈顶元素和pop中要访问的字符仍然不一样,则此pop序列不是合法的pop序列
if(list.getLast()!=pop.charAt(popindex)){
break;
}
//检查pop序列中的下一个字符
list.pollLast();
popindex++;
}
//如果pop序列中所有的字符都被检查过,则该序列是合法的
if(list.size()==0&&popindex==length){
isPossible = true;
}
}
return isPossible;

}

}
运行结果:

输出序列是否为合法的pop序列:false