判断栈的压入和弹出
序列1,2,3,4,5是壓棧序列。序列 4,3,5,1,2是彈出序列。判斷第二個是不是彈出序列
三步走
放大看原圖
筆試代碼
bool IsfPopOrder(const int *pPush,const int*pPop,int nLength) {if(pPush != nullptr && pPop != nullptr &&nLength > 0){const int *pNextPush = push;const int *pNextPop = pop;std::stack<int> stackData;while(pNextPop - pop < nLength){while(stackData.empty() || stackData.top() != *pNextPop){if(pNextPush - pPush == nLength)break;stackData.push(*pNextpush);pNextpush++;}if(stackData.top() != *pNextPop)break;stackData.pop();pNextPop++;}} }總結
- 上一篇: 文字常量区和栈区考点
- 下一篇: 成都大熊猫繁育研究基地网上订票没带身份证