使用兩個佇列實現棧,要滿足**先出,比如輸入:1 2 3 4 5,那麼輸出就應該是:5 4 3 2 1
使用兩個佇列,分別是資料佇列和輔助隊裡,
1、資料新增到資料佇列中
2、元素出棧時,將有資料的佇列元素(保留最後乙個元素)移動到無資料的佇列
3、將最後乙個元素出隊,正式所需要的出棧資料
system.out.println("出棧的元素:");
for (int i = 1; i < 6; i++)
}/**
* 獲取元素
*/private static object popelement() else
}/**
* 將輔助佇列的元素放入資料佇列,並將輔助佇列的最後乙個元素出隊
*/private static object popelementfromoriginalqueue()
return helpqueue.poll();
}/**
* 將資料佇列的元素放入輔助佇列,並將資料佇列的最後乙個元素出隊
*/private static object popelementfromhelpqueue()
return originalqueue.poll();}}
輸出結果:
入棧的元素:
1 2 3 4 5
出棧的元素:
5 4 3 2 1
資料結構 棧 佇列
二 佇列 注 鏈式儲存 定義鍊錶元素所儲存的資料型別 以int為例 typedef int elemtype 定義棧的結點結構及結點指標型別 typedef struct stacknode stacknode,stacknodeptr 定義指向棧的結構 typedef struct linksta...
資料結構 棧 (十) 使用棧實現佇列
使用兩個棧模擬佇列,比如輸入 1 2 3 4,則要求輸出仍是 1 2 3 4 1 有兩個棧,乙個用來存放入隊資料 資料棧 乙個用來輔助 輔助棧 實現資料出隊。2 資料新增時,會依次壓人棧,取資料時會取棧頂元素,但要模擬佇列的先進先出,所以就得取棧底元素,那麼輔助棧就派上用場了,把資料棧的元素依次彈出...
資料結構 用佇列實現棧 C
棧實現佇列功能 include include include include using namespace std 結點 class mydata 預設建構函式 mydata int value data value next null 帶引數建構函式 int data mydata next ...