首頁 - 網(wǎng)校 - 萬題庫 - 直播 - 雄鷹網(wǎng)校 - 團(tuán)購 - 書城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 -
首頁網(wǎng)校萬題庫直播雄鷹網(wǎng)校團(tuán)購書城模考論壇實(shí)用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓(xùn)
專升本
自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級(jí)
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托福考試
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級(jí)
零起點(diǎn)德語
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會(huì)計(jì)職稱
法律顧問
ACCA考試
初級(jí)會(huì)計(jì)職稱
資產(chǎn)評(píng)估師
高級(jí)經(jīng)濟(jì)師
注冊會(huì)計(jì)師
高級(jí)會(huì)計(jì)師
美國注冊會(huì)計(jì)師
審計(jì)師考試
國際內(nèi)審師
注冊稅務(wù)師
理財(cái)規(guī)劃師
一級(jí)建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級(jí)建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
注冊給排水
造價(jià)員考試
注冊計(jì)量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評(píng)價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評(píng)價(jià)師
土地登記代理人
寶寶起名
繽紛校園
實(shí)用文檔
入黨申請
英語學(xué)習(xí)
思想?yún)R報(bào)
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 復(fù)習(xí)資料 > 程序員 > 正文

2015年軟件水平考試程序員精選題(12)

考試吧整理“2015年軟件水平考試程序員精選題(12)”供考生參考,更多軟件水平考試資訊和備考資料請關(guān)注考試吧軟件水平考試網(wǎng)。

  查看匯總:2015軟件水平考試程序員精選題匯總

  棧的push、pop序列

  題目:輸入兩個(gè)整數(shù)序列。其中一個(gè)序列表示棧的push順序,判斷另一個(gè)序列有沒有可能是對應(yīng)的pop順序。為了簡單起見,我們假設(shè)push序列的任意兩個(gè)整數(shù)都是不相等的。

  比如輸入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一個(gè)pop系列。因?yàn)榭梢杂腥缦碌膒ush和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,這樣得到的pop序列就是4、5、3、2、1。但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。

  分析:這到題除了考查對棧這一基本數(shù)據(jù)結(jié)構(gòu)的理解,還能考查我們的分析能力。

  這道題的一個(gè)很直觀的想法就是建立一個(gè)輔助棧,每次push的時(shí)候就把一個(gè)整數(shù)push進(jìn)入這個(gè)輔助棧,同樣需要pop的時(shí)候就把該棧的棧頂整數(shù)pop出來。

  我們以前面的序列4、5、3、2、1為例。第一個(gè)希望被pop出來的數(shù)字是4,因此4需要先push到棧里面。由于push的順序已經(jīng)由push序列確定了,也就是在把4 push進(jìn)棧之前,數(shù)字1,2,3都需要push到棧里面。此時(shí)棧里的包含4個(gè)數(shù)字,分別是1,2,3,4,其中4位于棧頂。把4 pop出棧后,剩下三個(gè)數(shù)字1,2,3。接下來希望被pop的是5,由于仍然不是棧頂數(shù)字,我們接著在push序列中4以后的數(shù)字中尋找。找到數(shù)字5后再一次push進(jìn)棧,這個(gè)時(shí)候5就是位于棧頂,可以被pop出來。接下來希望被pop的三個(gè)數(shù)字是3,2,1。每次操作前都位于棧頂,直接pop即可。

  再來看序列4、3、5、1、2。pop數(shù)字4的情況和前面一樣。把4 pop出來之后,3位于棧頂,直接pop。接下來希望pop的數(shù)字是5,由于5不是棧頂數(shù)字,我們到push序列中沒有被push進(jìn)棧的數(shù)字中去搜索該數(shù)字,幸運(yùn)的時(shí)候能夠找到5,于是把5 push進(jìn)入棧。此時(shí)pop 5之后,棧內(nèi)包含兩個(gè)數(shù)字1、2,其中2位于棧頂。這個(gè)時(shí)候希望pop的數(shù)字是1,由于不是棧頂數(shù)字,我們需要到push序列中還沒有被push進(jìn)棧的數(shù)字中去搜索該數(shù)字。但此時(shí)push序列中所有數(shù)字都已被push進(jìn)入棧,因此該序列不可能是一個(gè)pop序列。

  也就是說,如果我們希望pop的數(shù)字正好是棧頂數(shù)字,直接pop出棧即可;如果希望pop的數(shù)字目前不在棧頂,我們就到push序列中還沒有被push到棧里的數(shù)字中去搜索這個(gè)數(shù)字,并把在它之前的所有數(shù)字都push進(jìn)棧。如果所有的數(shù)字都被push進(jìn)棧仍然沒有找到這個(gè)數(shù)字,表明該序列不可能是一個(gè)pop序列。

  相關(guān)推薦:

  2015年軟考信息技術(shù)處理員考前知識(shí)點(diǎn)總結(jié)匯總

  2015年軟件水平考試《程序員》提高練習(xí)題匯總

  2015軟件水平考試《程序員》知識(shí)點(diǎn)總結(jié)匯總

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧軟件水平考試網(wǎng) All Rights Reserved 
中國科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧