用棧實現(xiàn)隊列

題目:

正如標(biāo)題所述,你需要使用兩個棧來實現(xiàn)隊列的一些操作永品。
隊列應(yīng)支持push(element)脱篙,pop() 和 top(),其中pop是彈出隊列中的第一個(最前面的)元素
pop和top方法都應(yīng)該返回第一個元素的值除破。

樣例:

比如push(1), pop(), push(2), push(3), top(), pop(),你應(yīng)該返回1琼腔,2和2

挑戰(zhàn):

僅使用兩個棧來實現(xiàn)它互拾,不使用任何其他數(shù)據(jù)結(jié)構(gòu)斯嚎,push煤蹭,pop 和 top的復(fù)雜度
都應(yīng)該是均攤O(1)的
思路:
把棧2中的元素導(dǎo)入到棧1中就從先進(jìn)后出隊列變成了先進(jìn)先出隊列
代碼:

    public class MyQueue {
        private Stack<Integer> stack1;
        private Stack<Integer> stack2;
    
        public MyQueue() {
           // do initialization if necessary
           stack1 = new Stack<Integer>();
           stack2 = new Stack<Integer>();
        }
        
        private void stack2ToStack1(){
            while(!stack2.isEmpty()){
                stack1.push(stack2.pop());
            }
        }
        
        public void push(int element) {
            // write your code here
            stack2.push(element);
        }
    
        public int pop() {
            // 棧1為空把棧2元素加入棧1朗涩,棧1不為空直接從棧1拋出元素
            if(stack1.empty() == true){
                this.stack2ToStack1();
            }
            return stack1.pop();
        }
    
        public int top() {
            if(stack1.empty() == true){
                this.stack2ToStack1();
            }
            return stack1.peek();
        }
    }

代碼可以優(yōu)化:
http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甥材,隨后出現(xiàn)的幾起案子盯另,更是在濱河造成了極大的恐慌,老刑警劉巖擂达,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件土铺,死亡現(xiàn)場離奇詭異胶滋,居然都是意外死亡,警方通過查閱死者的電腦和手機悲敷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門究恤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人后德,你說我怎么就攤上這事部宿。” “怎么了瓢湃?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵理张,是天一觀的道長。 經(jīng)常有香客問我绵患,道長雾叭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任落蝙,我火速辦了婚禮织狐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筏勒。我一直安慰自己移迫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布管行。 她就那樣靜靜地躺著厨埋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捐顷。 梳的紋絲不亂的頭發(fā)上荡陷,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音套菜,去河邊找鬼亲善。 笑死设易,一個胖子當(dāng)著我的面吹牛逗柴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播顿肺,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼戏溺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屠尊?” 一聲冷哼從身側(cè)響起旷祸,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讼昆,沒想到半個月后托享,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年闰围,在試婚紗的時候發(fā)現(xiàn)自己被綠了赃绊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡羡榴,死狀恐怖碧查,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情校仑,我是刑警寧澤忠售,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站迄沫,受9級特大地震影響稻扬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羊瘩,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一腐螟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧困后,春花似錦乐纸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侧戴,卻和暖如春宁昭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酗宋。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工积仗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜕猫。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓寂曹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親回右。 傳聞我的和親對象是個殘疾皇子隆圆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 問題: 用兩個棧實現(xiàn)隊列的基本功能 思路: 第一個棧正常加元素,再把第一個棧的元素pop到第二個棧翔烁,這時候就可以實...
    一凡呀閱讀 258評論 0 0
  • 題目描述用兩個棧來實現(xiàn)一個隊列渺氧,完成隊列的Push和Pop操作。 隊列中的元素為int類型蹬屹。解:隊列:先進(jìn)先出棧:...
    MAXPUP閱讀 128評論 0 0
  • 你好衬鱼,菇娘兒,跟我回家可好憔杨? 昨天形色君又在超市碰到了菇娘兒(gū niǎng er)鸟赫,這次終于忍不住帶她回了家。...
    形色閱讀 353評論 0 1
  • 草甸妖怪姓白消别,頂著辦撮兒綠毛抛蚤,嘴里吧嗒吧嗒的嚼著肉干,跟蓮雪壩子來的桃花鬼寻狂,有一搭沒一搭的胡扯岁经,祈安山脈上元森林的...
    藍(lán)色星球的小羽閱讀 144評論 0 0
  • 一、供應(yīng)商整體評價 該公司質(zhì)量管控體系不完善蛇券,部分流程缺少標(biāo)準(zhǔn)化缀壤,庫房擺放混亂,5S管理和目視化管理差纠亚,物料無區(qū)分...
    charles2017閱讀 3,088評論 0 2