麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

隊(duì)列和棧面試題(一)— 請(qǐng)編寫(xiě)一個(gè)程序,按升序?qū)_M(jìn)行排序,要求最多只能使用一個(gè)額外的棧存放臨時(shí)數(shù)據(jù)

2019-11-14 13:08:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

題目:請(qǐng)編寫(xiě)一個(gè)程序,按升序?qū)_M(jìn)行排序,要求最多只能使用一個(gè)額外的棧存放臨時(shí)數(shù)據(jù),但不得將元素復(fù)制到別的數(shù)據(jù)結(jié)構(gòu)中。


思路:首先申請(qǐng)一個(gè)棧sta來(lái)存放數(shù)據(jù)棧,再申請(qǐng)一個(gè)輔助棧help來(lái)存放臨時(shí)數(shù)據(jù),然后比較sta彈出的棧頂?shù)闹祌es與help棧頂元素的大小。

當(dāng)sta棧不為空時(shí):

1、如果help.empty()或者res<=help.top(),那么就把res的值壓入help棧中;

2、如果help不為空并且res>help.top(),那么就把help中棧頂?shù)闹祻棾霾喝雜ta棧,最后把res的值壓入help棧中。

具體可看如下過(guò)程圖:

1 2 3 4 5 6 7 8 9


示例代碼:

#include<iostream>#include<string>#include<stack>//pop,top,push#include<vector>using namespace std;class TwoStacks {public: vector<int> twoStacksSort(vector<int> numbers) { stack<int> sta; for(vector<int>::reverse_iterator riter=numbers.rbegin();riter!=numbers.rend();riter++) sta.push(*riter); StackSort(sta); vector<int> res; while(!sta.empty()) { res.push_back(sta.top()); sta.pop(); } return res; } void StackSort(stack<int> &sta) { stack<int> help; while(!sta.empty()) { int res=sta.top(); sta.pop(); if(help.empty()||res<=help.top()) help.push(res); else { while(!help.empty()&&res>help.top()) { sta.push(help.top()); help.pop(); } help.push(res); } } while(!help.empty()) { sta.push(help.top()); help.pop(); } }};int main(){ int a[5]={1,2,3,4,5}; TwoStacks A; vector<int> arr(a,a+5),res; res=A.twoStacksSort(arr); for(vector<int>::iterator iter=res.begin();iter!=res.end();iter++) cout<<*iter<<" "; return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久在线精品视频 | 中文字幕国产日韩 | 99视频网址 | 国产高清美女一级毛片久久 | 亚洲成人高清电影 | 伦一区二区三区中文字幕v亚洲 | 精品国产91久久久久久久妲己 | 中国成人在线视频 | av电影院在线观看 | 国产精品久久久久久久久久大牛 | 成人国产在线看 | 欧美日韩a∨毛片一区 | 欧美日本免费一区二区三区 | 国产精品视频久久久 | 午夜国内精品a一区二区桃色 | 一级毛片在线免费播放 | 男女无遮挡羞羞视频 | 久久国产一二三 | av免费在线观看国产 | 福利在线播放 | 欧美亚洲国产日韩 | 国产外围在线 | 夜夜b | 国产精品久久久久久238 | 黄色免费不卡视频 | 亚洲成人中文字幕在线 | 欧美另类视频在线 | 999久久国精品免费观看网站 | 天天看夜夜爽 | 深夜网站在线观看 | 日韩欧美视频一区二区三区 | 免费视频www在线观看 | 一区二区三区播放 | 精品国产一二区 | 国产精品久久久久久久四虎电影 | 天天舔天天插 | 亚洲午夜1000理论片aa | 久久最新免费视频 | 欧美一级免费看 | 国产成人综合在线观看 | 国产免费一区二区三区最新不卡 |