数据结构篇 - 一文掌握队列(记得做题噢~)

本文介绍了队列的基本概念,使用C语言实现了一个简单的队列结构,包括创建、入队和出队操作。并以实际问题为例,展示了如何应用队列解决知道秘密的人数、滑动窗口的最大值等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,参议院

4,满足不等式的最大值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值