迴圈佇列(進隊,出隊)

2022-08-23 02:33:12 字數 1184 閱讀 3073

描述

根據給定的空間構造順序迴圈佇列,規定隊滿處理方法為少用乙個元素空間。例如,給定5個元素空間構造迴圈佇列,則只能存放4個元素。試根據入隊及出隊操作判斷佇列最後的元素存放情況,並輸出最後佇列中的元素值,即完成給定入隊及出列操作後一次性全部出隊的元素值。要求採用順序佇列完成。

輸入輸入的第一行為乙個自然數n,表示要求構造的順序迴圈佇列空間數。第二行為操作次k,接下來k行為出隊入隊操作,每行各代表一次操作。入隊用in表示,出隊用out表示,如果是入隊,則in隔一空格後為一整數,表示入隊元素值。

輸出輸出完成所有入隊出隊操作後,一次性出隊元素。用乙個空格隔開。可以假定隊在完成所有操作後不為空。

樣例輸入

in 1

in 2

in 5

in 6

outout

in 8

樣例輸出

5 8

#include"

iostream

"#include

"string

"using

namespace

std;

typedef

intelement;

class

queue

bool

empty()

bool

full()

bool

push(element data)

arr[tail] =data;

tail = (tail + 1) %maxsize;

return

true

; }

intlength()

element pop()

int temp =front;

front = (front + 1) %maxsize;

return

arr[temp];

}element getfront()

return

arr[front];

}};int

main()

else

}while(!myq.empty())

cout

}/*47

in 1

in 2

in 5

in 6

outout

in 8

*/

用棧實現佇列的進隊出隊操作

假設有兩個棧stack1,stack2 用這兩個棧來實現佇列的push 和 pop 操作 思路 進隊 push 操作,直接使用stack1.push 將元素進棧即可 出隊 pop 操作,先判斷stack2是否為空。若不為空,則stack2直接出棧即可 若為空,則將stack1中的元素全部出棧,並依次...

佇列的初始化 進隊,出隊操作 C語言實現

標頭檔案和機構體 include include typedef int elemtype 鍊錶節點 typedef struct linkqueuenode linkqueue 指向鍊錶的頭結點的節點 typedef struct lqueue lqueue 初始化佇列 lqueue init l...

佇列 迴圈佇列與鏈隊

2.鏈隊 注意 佇列也是線性表,其特殊性在於有特殊的運算規則。即 隊結構只能在一端進行插入,該操作端稱為隊尾,另一端刪除元素,該操作端稱為隊頭。按照 先進先出 first in first out,fifo 原則處理資料節點。之所以用迴圈對列,就是了為了提高利用率。要不然每刪除乙個元素,對頭就空了乙...