1,什么是队列?
队列其实就是排队,一个接一个入队出队,也就是俗话说的先入先出(FIFO)
2,简单队列的代码实现
①创建一个队列
struct Queue{
int capacity;
int front;
int rear;
int size;
int* nums;
}
Queue CreateQueue(int max){
Queue Q = malloc(sizeof(struct Queue));
Q->nums = malloc(sizeof(max));
Q->capacity = max;
Q->front = 0;
Q->rear = 0;
}
②入队操作
void Push(Queue Q, int val){
if((Q->front + 1) % Q->capacity) == Q->rear){
print("Queue is full");
return;
}
Q->nums[Q->front++] = val;
Q->front %= Q->capaticy;
}
③出队操作
int Pop(Queue Q){
if(Q->rear == Q->front){
print("Queue is NULL");
}
return Q->nums[Q->rear++];
}
ok,到底为止,你已经明白什么是队列了,现在就开始愉快的做题吧~
1,知道秘密的人数
2,滑动窗口的最大值
3,参议院