C语言版数据结构与算法pta合集:7-1 队列的实现及基本操作

发布时间:2024年01月13日

7-1 队列的实现及基本操作

分数 5

全屏浏览题目

切换布局

作者?朱允刚

单位?吉林大学

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

输入格式:

输入第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>
struct Queue{
    int top;
    int arr[20000]
};
int main(){
    int n;
    scanf("%d",&n);
    struct Queue p;
    p.top=0;//初始化队列
    int count=-1;//标记队列的数量-1;
    int index=-1;//标记队尾的数下标
    for(int i=0;i<n;i++){
        int flag;
        int num;
        scanf("%d",&flag);//先判断,在输入num
        if(flag==1){
            scanf("%d",&num);
            p.arr[++index]=num;//入队列
            count++;
        }else if(flag==0&&count!=-1){
            printf("%d\n",p.arr[p.top]);
            p.top++;
            count--;
        }else{
            printf("invalid\n");
        }
    }
    return 0;
}

?

文章来源:https://blog.csdn.net/zxn275266/article/details/135452221
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。