队列-初始化、入队列、计算长度及打印1(顺序存储)在一行输入若干个整型数,以-1作为结束(-1不计入总数)
时间: 2024-05-25 19:17:52 浏览: 58
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int front, rear;
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
void enqueue(Queue *q, int x) {
if ((q->rear + 1) % MAX_SIZE == q->front) {
printf("队列已满,无法入队!\n");
return;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_SIZE;
}
int length(Queue q) {
return (q.rear - q.front + MAX_SIZE) % MAX_SIZE;
}
void printQueue(Queue q) {
printf("队列元素为:");
int i = q.front;
while (i != q.rear) {
printf("%d ", q.data[i]);
i = (i + 1) % MAX_SIZE;
}
printf("\n");
}
int main() {
Queue q;
initQueue(&q);
int x;
printf("请输入若干个整型数,以-1作为结束:\n");
while (scanf("%d", &x) != EOF && x != -1) {
enqueue(&q, x);
}
printf("队列长度为:%d\n", length(q));
printQueue(q);
return 0;
}