赞
踩
输入格式
输入一共有 3 行,第一行为一个正整数 m(1≤m≤100),代表入队的元素个数。
第二行为 m 个整数,表示插入到队列中的元素。
第三行为一个整数 n(1≤n<m),表示执行出队操作的次数。
输出格式
输出一共有 2 行,第一行为执行完所有入队、出队操作后当前队列的队首元素。
第二行为最终队列的遍历输出结果,每两个整数之间一个空格,最后一个整数后面没有空格。
#include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef struct Queue{ int head, tail, length; int *data; }Queue; void init(Queue *q, int length) { q->head = 0; q->tail = -1; q->length = length; q->data = (int *)malloc(sizeof(int) * length); } int push(Queue *q, int element) { if(q->tail + 1 >= q->length) { return ERROR; } q->tail++; q->data[q->tail] = element; return OK; } void output(Queue *q) { for (int i = q->head; i <= q->tail; i++) { if(i != q->head) printf(" "); printf("%d", q->data[i]); } printf("\n"); } int front(Queue *q) { return q->data[q->head]; } void pop(Queue *q) { q->head++; } int empty(Queue *q) { return q->head > q->tail; } void clear(Queue *q) { free(q->data); free(q); } int main() { Queue *queue = (Queue *)malloc(sizeof(Queue)); init(queue, 100); int m; int element[100]; scanf("%d",&m); for(int i = 0; i < m; i++) { scanf("%d",&element[i]); push(queue,element[i]); } int n; scanf("%d",&n); for(int i = 0; i < n; i++) { if(!empty(queue)){ pop(queue); } } printf("%d\n",front(queue)); output(queue); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。