剑指offer--面试题31:栈的压入弹出序列

来源:互联网 发布:宏晶单片机选型 编辑:程序博客网 时间:2024/06/08 05:09

#include <iostream>#include <stack> using namespace std; bool IsPopOrder(const int* push,const int* pop,int length){    bool bPossible=false;    if(push!=NULL && pop!=NULL && length>0){        stack<int> stackData;        int i=0;        int j=0;        while(j<length){            while(stackData.empty() || stackData.top()!=pop[j]){                if(i>length-1)                    break;                stackData.push(push[i]);                ++i;            }            if(stackData.top()!=pop[j])                break;            stackData.pop();            ++j;        }        if(stackData.empty() && j==length)            bPossible=true;    }    return bPossible;} int main(){    int A[]={1,2,3,4,5};    int B[]={4,5,3,2,1};    int length=sizeof(A)/sizeof(A[0]);if(IsPopOrder(A,B,length))cout << "是出栈序列"<< endl;    return 0;}


阅读全文
0 0