PTA 7-6 队列操作

43 篇文章 36 订阅

7-6 队列操作添加链接描述

请实现一个MyQueue类,实现出队,入队,求队列长度.

实现入队函数 void push(int x); 实现出队函数 int pop(); 实现求队列长度函数 int size();

输入格式:
每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作: 1 x : 表示从队尾插入x,0<=x<=2^31-1。 2 : 表示队首元素出队。 3 : 表示求队列长度。

输出格式:
对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。 对于操作3,请输出队列长度。 每个输出项最后换行。

输入样例:
5
3
2
1 100
3
2
输出样例:
0
Invalid
1
100

#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	int a[10000];
	int count;
	count=0;
	int caozuo,xh;
	for (i=1;i<=n;i++){
		scanf("%d",&caozuo);
		if(caozuo==1){
		  scanf("%d",&xh);
		  a[count]=xh;
		  count++;	
		}
		else if(caozuo==3){
			printf("%d\n",count);
		}
		else {
			if(count==0){
				printf("Invalid\n");
			}
			else {
				count--;
				printf("%d\n",a[count]);
			}
		}
	}
	return 0;
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
队列是一种数据结构,它是一种先进先出(FIFO)的线性数据结构。队列只允许在队列的一端进行插入操作,称为队尾,而在另一端进行删除操作,称为队头。下面是队列实现基本操作。 1. 队列的结构定义 ```c #define MAXSIZE 100 // 队列最大容量 typedef struct { int data[MAXSIZE]; // 队列元素数组 int front; // 队头指针 int rear; // 队尾指针 } Queue; ``` 2. 初始化队列 ```c void initQueue(Queue *q) { q->front = q->rear = 0; // 队头和队尾指针初始化为0 } ``` 3. 判断队列是否为空 ```c int isEmpty(Queue *q) { return q->front == q->rear; } ``` 4. 判断队列是否已满 ```c int isFull(Queue *q) { return (q->rear + 1) % MAXSIZE == q->front; } ``` 5. 入队操作 ```c int enqueue(Queue *q, int x) { if (isFull(q)) // 队列已满,无法插入 return 0; q->data[q->rear] = x; // 插入元素到队尾 q->rear = (q->rear + 1) % MAXSIZE; // 队尾指针加1 return 1; } ``` 6. 出队操作 ```c int dequeue(Queue *q, int *x) { if (isEmpty(q)) // 队列为空,无法删除 return 0; *x = q->data[q->front]; // 取出队头元素 q->front = (q->front + 1) % MAXSIZE; // 队头指针加1 return 1; } ``` 7. 获取队头元素 ```c int getFront(Queue *q, int *x) { if (isEmpty(q)) // 队列为空 return 0; *x = q->data[q->front]; // 取出队头元素 return 1; } ``` 8. 获取队列长度 ```c int getLength(Queue *q) { return (q->rear - q->front + MAXSIZE) % MAXSIZE; } ``` 9. 输出队列元素 ```c void printQueue(Queue *q) { if (isEmpty(q)) // 队列为空 return; int i = q->front; while (i != q->rear) { printf("%d ", q->data[i]); i = (i + 1) % MAXSIZE; } printf("\n"); } ``` 以上就是队列实现基本操作。在使用队列时,需要注意队列的容量大小,避免队列溢出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

关迪迪屁事.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值