求救,C语言求解
查看原帖
求救,C语言求解
1090758
stmo楼主2023/9/19 10:13
#include<stdio.h>
#include<stdlib.h>
#define maxsize 200000
typedef struct dui{
	int front;
	int rear;
	int date[maxsize];
} Q;
void cha(Q* s, int x);
void chu(Q* s, int y);
void search(Q* s, int x);
void max(Q* s);
int main() {
	Q* dd;
	dd = (Q*)malloc(sizeof(Q));
	dd->front = -1;
	dd->rear = -1;
	int n,m, q;
	scanf("%d %d", &n, &q);
	for (int i = 1; i <= q; i++) {
		scanf("%d", &n);
		if (n != 4) {
			scanf("%d", &m);
			if (n == 1)
				cha(dd, m);
			if (n == 2)
				chu(dd, m);
			if (n == 3)
				search(dd, m);
		}
		else { max(dd); }
	}

}
void cha(Q* s, int x) {
	for (int i = 1,j=0; i <= x; i++,j++) {
		s->date[j] = i;
		s->rear++;
	}
}
void chu(Q* s, int y) {
	for (int i = 1; i <= y; i++) {
		s->front++;
	}
}
void search(Q* s, int x) {
	printf("%d\n", s->date[s->front + x]);
}
void max(Q*s) {
	int q = s->front+1;
	int max = 0;
	for (; q <= s->rear; q++) {
		if (s->date[q] > max)
			max = s->date[q];
	}
	printf("%d\n", max);
}

2023/9/19 10:13
加载中...