日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断栈的压入和弹出

發布時間:2023/11/30 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断栈的压入和弹出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序列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++;}} }

    總結

    以上是生活随笔為你收集整理的判断栈的压入和弹出的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。