您的位置:首页 > 其它

判断是否正确的出栈顺序

2018-02-27 15:11 281 查看
bool isOK(int *arr, int len) {

stack<int> auxStack;
int i = 0; // the index for the arr
int j = 1; // the number in seq 1,2,3,4,5

while (j <= len + 1) {  //这里是len + 1的原因是,当5入栈的时候j就变成了6,但是这时候不能马上跳出循环

if (auxStack.empty()) {

if (j == len + 1) {
break;
}
else {
auxStack.push(j++);
}
}
else {
if (arr[i] == auxStack.top()) {
auxStack.pop();
i++;
}
else {
auxStack.push(j++);
}
}
}

if (i == len) {
return true;
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: