迴圈佇列和佇列

2021-06-17 20:33:55 字數 1670 閱讀 2771

描述

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

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

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

樣例輸入 4

7in 1

in 2

in 5

in 6

outout

in 8

樣例輸出

5 8#include #include using namespace std;

int n;

#define maxsize 10000

typedef char elemtype;

typedef struct

squeue;

void initqueue(squeue *t)

int enqueue(squeue *t, elemtype &e)

}int outqueue(squeue *t, elemtype &e)

}int main()

else if(q[0]=='o')

outqueue(&t,e);

} elemtype b[500];

int j=0;

while(!(t.rear == t.front))

for(i=0; i排隊描述

排隊是我們日常生活中最常見的事情。現有若干個人在銀行要求處理各種訪問款業務,採用先來先到的順序進行處理。假定「in」表示到達銀行,「out」表示進行處理。要求輸出所有顧客的處理順序。

輸入輸入第一行包括乙個整數n(1<=n<=10000000)表示有多少處理情況,接下來n行,每行以「in」或「out」開頭,如果是「in」開頭,表示達到銀行並排隊,後面接著為某顧客的姓名,用乙個音詞表示姓名,用一空格隔開,如果是「out」,表示從佇列中出乙個人到櫃檯處理業務。

輸出輸出所有按先後順序到櫃檯處理業務的顧客姓名,每行為一顧客。

樣例輸入

5in bob

in ruse

outin sanlu

out

樣例輸出

bobruse

#include #include using namespace std;

#define maxsize 10000

typedef string elemtype;

typedef struct

squeue;

void initqueue(squeue *t)

int enqueue(squeue *t, elemtype &e)

}int outqueue(squeue *t, elemtype &e)

}int main()

else if(q[0]=='o')

{ if(t.front == t.rear)

continue;

outqueue(&t,e);

cout<

佇列和迴圈佇列

線性表是最基本,最簡單,最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其他資料元素均有唯一的前驅元素和後繼元素。線性表的特徵如下 集合中一定存在唯一的乙個 第乙個元素 集合中一定存在唯一的乙個 最後元素 除最後乙個元素外,其他元素均有唯一的後繼元...

佇列(單鏈佇列和迴圈佇列)

和線性表類似,佇列也有兩種儲存表示 鏈佇列 為操作方便,給鏈佇列新增乙個頭結點 佇列的鏈式儲存結構 typedef struct qnodeqnode,queueptr typedef struct linkqueue 1 include2 include3 include4 typedef str...

佇列 迴圈佇列

迴圈佇列是乙個大小確定的特殊佇列,它的特殊體現在迴圈,之前提到的普通佇列,我們是用鍊錶來實現的,在這裡,由於迴圈佇列是乙個長度確定的佇列,所以我們可以拿順序表來實現。迴圈佇列的操作與普通佇列類似,不過不同的地方在於當rear走到capacity 1並且front在0號元素位置的時候,當此時再有元素入...