程序填空题:队列实现
本题要求实现一个普通顺序队列。
当输入1 2 3 -1时,输出为1 2 3 。
当输入为1 2 3 4 5 6 7 8 9 10 11 -1时,输出为
queue is full!
1 2 3 4 5 6 7 8 9 10
请填空。
c++
#include <stdio.h>
#include <stdbool.h>
#define MaxSize 10
int q[MaxSize];
int front;
int rear;
//空队列返回true,否则返回false
bool empty() {
return ;
}
//队列满返回true,否则返回false
bool full() {
return rear + 1 == MaxSize;
}
//入队列
void push(int x) {
++rear;
q[rear] = x;
}
//取队首元素
int getFront() {
return ;
}
//出队列
void pop() {
++front;
}
int main(int argc, char const *argv[])
{
int i;
; //初始化队列
while (scanf("%d", &i) != EOF) {
if (i == -1)break;
if (!full()) //队列未满时
push(i); //入队列
else
printf("queue is full!\n");
}
while (!empty()) { //输出队列元素
printf("%d ", getFront());
pop();
}
printf("\n");
return 0;
}
答案:
第1空:front == rear
第2空:q[front + 1]
第3空:front = rear = -1
当输入1 2 3 -1时,输出为1 2 3 。
当输入为1 2 3 4 5 6 7 8 9 10 11 -1时,输出为
queue is full!
1 2 3 4 5 6 7 8 9 10
请填空。
c++
#include <stdio.h>
#include <stdbool.h>
#define MaxSize 10
int q[MaxSize];
int front;
int rear;
//空队列返回true,否则返回false
bool empty() {
return ;
}
//队列满返回true,否则返回false
bool full() {
return rear + 1 == MaxSize;
}
//入队列
void push(int x) {
++rear;
q[rear] = x;
}
//取队首元素
int getFront() {
return ;
}
//出队列
void pop() {
++front;
}
int main(int argc, char const *argv[])
{
int i;
; //初始化队列
while (scanf("%d", &i) != EOF) {
if (i == -1)break;
if (!full()) //队列未满时
push(i); //入队列
else
printf("queue is full!\n");
}
while (!empty()) { //输出队列元素
printf("%d ", getFront());
pop();
}
printf("\n");
return 0;
}
答案:
第1空:front == rear
第2空:q[front + 1]
第3空:front = rear = -1