構建佇列 使用棧方法

2021-10-09 16:11:14 字數 1440 閱讀 7550

如何使用乙個棧來儲存佇列呢?

佇列是先進先出結構,而棧是先進後出結構,所以在單一的棧中無法實現佇列模式;

但是我們可以使用兩個棧,將項移來移去,並在刪除的時候改變他們的順序

q[10,20,30]

s1s2

||||

s2用來新增元素

q[10,20,30]

s1[10,20,30]

s2||||

q[10,20,30]

s1[10,20,30]

s2[30,20,10]

||||

s2用來刪除元素

q[10,20,30]

s1[10,20,30]

s2使用陣列方式建立乙個佇列,該佇列有:

建立兩個棧

private stack

stack1 =

newstack

<

>()

;private stack

stack2 =

newstack

<

>()

;

public

void

enqueue

(int item)

public

intdequeue()

與pop()操作一樣,不同的是peek()操作沒有刪除元素且返回該元素

public

intpeek()

我們發現pop()操作與peek()操作**有3行的**是執行相同操作,於是將它們封裝為乙個方法,即

使用Redis構建任務佇列

任務佇列可以看作是訊息佇列的一種,只是其用於管理非同步任務。任務佇列有基本的在應用程式間傳遞,保持任務的功能。本實訓專案的主要內容是使用redis分別構建先進先出任務佇列,優先順序任務佇列和定時任務佇列。先進先出任務佇列 usr bin env python coding utf 8 import ...

STL中棧和佇列的使用方法

stl 中優先佇列的使用方法 priority queu 基本操作 empty 如果隊列為空返回真 pop 刪除對頂元素 push 加入乙個元素 size 返回優先佇列中擁有的元素個數 top 返回優先佇列對頂元素 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方...

C STL中棧和佇列的使用方法

基本操作 push x 將x加入棧中,即入棧操作 pop 出棧操作 刪除棧頂 只是出棧,沒有返回值 top 返回第乙個元素 棧頂元素 size 返回棧中的元素個數 empty 當棧為空時,返回 true使用方法 和佇列差不多,其中標頭檔案為 include定義方法為 stacks1 入棧元素為 in...