描述
根據給定的空間構造順序迴圈佇列,規定隊滿處理方法為少用乙個元素空間。例如,給定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號元素位置的時候,當此時再有元素入...