bool isPopOrder(const int* pPush,const int* pPop,int length){
bool flag=false;
if(pPush!=NULL&&pPop!=NULL&&length>0){
const int *pPushNext=pPush;
const int *pPopNext=pPop;
std::stack<int> stackData;
while(pPopNext-pPop<length){
while(stackData.empty()||stackData.top()!=*pPopNext){
if(pPushNext-pPush==length)
break;
stackData.push(*pPushNext);
pPushNext++;
}
if(stackData.top()!=*pPopNext)
break;
stackData.pop();
pPopNext++;
}
if(stackData.empty()&&pPopNext-pPop==length)
flag=true;
}
return flag;
}
StackWithInOrder
最新推荐文章于 2016-09-05 09:28:53 发布