9.3棧和隊列(七)——用兩個棧來實現一個隊列

來源:互聯網
上載者:User

標籤:java   資料結構   演算法   棧   隊列   

/** * 功能:用兩個棧來實現一個隊列。 */
import java.util.*;/** * 思路:需要修改peek()和pop(),以相反順序執行操作。可以利用第二個棧來反轉元素的次序。 * stackNewest頂端為最新元素,stackOldest頂端為最舊元素,利用兩個棧的元素的轉移來實現。 * */public class MyQuene1 {      Stack stackNewest ,stackOldest ;            public MyQuene1(){             stackNewest= new  Stack();             stackOldest= new  Stack();      }            public int size(){             return stackNewest.size()+ stackOldest.size();      }            public void add(Object value){             stackNewest.push(value);      }            //返回最舊元素      public Object peek(){             this.shiftStack();             return stackOldest.peek();      }            //刪除最舊元素      public Object remove(){             this.shiftStack();             return stackOldest.pop();      }            public void shiftStack(){             if( stackOldest.isEmpty())                   while(! stackNewest.isEmpty())                         stackOldest.push(stackNewest.pop());      }}


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

9.3棧和隊列(七)——用兩個棧來實現一個隊列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.