解析如何用兩個棧來實現(xiàn)隊列的方法
更新時間:2013年06月04日 17:37:51 作者:
本篇文章是對如何用兩個棧實現(xiàn)隊列的方法進行了詳細的分析介紹,需要的朋友參考下
題目:如何用兩個棧來實現(xiàn)隊列,即實現(xiàn)隊列的兩個方法——appendTail(插入)和deleteHead(刪除)。
分析:核心思想是一個棧正向存儲,另外一個棧逆向存儲。正向存儲的棧用來插入,逆向存儲的棧用來刪除。
實現(xiàn)的Java代碼如下:
復(fù)制代碼 代碼如下:
import java.util.Stack;
public class QueneWithTwoStacks<E> {
private Stack<E> stack1;
private Stack<E> stack2;
public void appendTail(E e) {
stack1.push(e);
}
public E deleteHead() throws Exception {
if (stack2.size() <= 0) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack2.size() == 0) {
throw new Exception("Queue is empty!");
}
return stack2.pop();
}
}
相關(guān)文章
Spring Boot集群管理工具KafkaAdminClient使用方法解析
這篇文章主要介紹了Spring Boot集群管理工具KafkaAdminClient使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02Java任務(wù)調(diào)度的常見實現(xiàn)方法與比較詳解
這篇文章主要介紹了Java任務(wù)調(diào)度的常見實現(xiàn)方法與比較,結(jié)合實例形式分析了Java任務(wù)調(diào)度的四種常見實現(xiàn)方法,使用區(qū)別及相關(guān)注意事項,需要的朋友可以參考下2017-08-08詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法
這篇文章主要介紹了詳解Java獲取環(huán)境變量及系統(tǒng)屬性的方法,講解了System.getEnv()和System.getProperties()這兩個核心方法的使用,需要的朋友可以參考下2016-05-05Spring的異常處理@ExceptionHandler注解解析
這篇文章主要介紹了Spring的異常處理@ExceptionHandler注解解析,當(dāng)一個Controller中有方法加了@ExceptionHandler之后,這個Controller其他方法中沒有捕獲的異常就會以參數(shù)的形式傳入加了@ExceptionHandler注解的那個方法中,需要的朋友可以參考下2023-12-12