您的位置:首页 > 房产 > 建筑 > 江苏省水建公司官网_外贸广告推广_如何制作一个网页页面_网络营销服务有哪些

江苏省水建公司官网_外贸广告推广_如何制作一个网页页面_网络营销服务有哪些

2024/12/23 6:04:16 来源:https://blog.csdn.net/2301_77485708/article/details/144231548  浏览:    关键词:江苏省水建公司官网_外贸广告推广_如何制作一个网页页面_网络营销服务有哪些
江苏省水建公司官网_外贸广告推广_如何制作一个网页页面_网络营销服务有哪些

队列的实现及基本操作

给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。

输入格式:
输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d入队,0表示出队。n不超过20000。

输出格式:
按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出invalid。

输入样例:

7
1 1
1 2
0
0
0
1 3
0

输出样例:

1
2
invalid
3

#include<stdio.h>
#include<stdlib.h>
typedef int QElemType;
typedef struct QNode {QElemType data;struct QNode* next;
}Qnode, * QuenePtr;
typedef struct {QuenePtr front;QuenePtr rear;int size;
}LinkQuene;
LinkQuene s;
void Initquene() {s.front = (QuenePtr)malloc(sizeof(Qnode));if (!s.front)exit(-1);s.rear = s.front;s.front->next = NULL;s.size = 0;
}
void enquene(QElemType e) {QuenePtr p = (QuenePtr)malloc(sizeof(Qnode));if (!p)exit(-1);p->data = e;p->next = NULL;s.rear->next = p;s.rear = p;s.size++;
}
void dequene() {if (s.front == s.rear) {exit(0);}printf("%d\n", s.front->next->data);QuenePtr p = s.front->next;s.front->next = p->next;if (s.rear == p) {s.rear = s.front;}free(p);s.size--;
}
int input(char* str, int i) {int b = 0;while (str[i] != '\0') {b = b * 10 + str[i] - '0';i++;}return b;
}
int main() {Initquene();int times, val;char str[100];gets(str);times = input(str, 0);while (times--){gets(str);if (str[0] == '1') {val = input(str, 2);enquene(val);}else{if (s.size == 0) {printf("invalid\n");}else {dequene();}}}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com