码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 力扣设计循环队列


    目录

    1.使用了数组来表达循环

    2.循环队列是否为空

    3.循环队列是否已满。

    4.初始化

    5.向循环队列插入一个元素。如果成功插入则返回真

                             6.从队首获取元素。如果队列为空,返回 -1 

                                    7.获取队尾元素。如果队列为空,返回 -1

                                                          8.销毁空间


    1.使用了数组来表达循环

    1. typedef struct {
    2. int k;//数据个数
    3. int *a;//数组
    4. int rear;//尾
    5. int front;//头
    6. } MyCircularQueue;

    2.循环队列是否为空

    1. bool myCircularQueueIsEmpty(MyCircularQueue* obj) {
    2. return obj->rear == obj->front;
    3. }

    3.循环队列是否已满。

    1. bool myCircularQueueIsFull(MyCircularQueue* obj) {
    2. return (obj->rear+1)%(obj->k+1) == obj->front;
    3. }

    4.初始化
    1. MyCircularQueue* myCircularQueueCreate(int k) {
    2. MyCircularQueue*obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));
    3. obj->a = (int*)malloc(sizeof(int)*(k+1));
    4. obj->k = k;
    5. obj->rear = obj->front = 0;
    6. return obj;
    7. }

    5.向循环队列插入一个元素。如果成功插入则返回真

    1. bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {
    2. if(myCircularQueueIsFull(obj))
    3. return false;
    4. obj->a[obj->rear] = value;
    5. obj->rear++;
    6. obj->rear %= (obj->k+1);
    7. return true;
    8. }

    6.从队首获取元素。如果队列为空,返回 -1 

    1. int myCircularQueueFront(MyCircularQueue* obj) {
    2. if(myCircularQueueIsEmpty(obj))
    3. return -1;
    4. return obj->a[obj->front];
    5. }

    7.获取队尾元素。如果队列为空,返回 -1

    1. int myCircularQueueRear(MyCircularQueue* obj) {
    2. if(myCircularQueueIsEmpty(obj))
    3. return -1;
    4. return obj->a[(obj->rear+obj->k)%(obj->k+1)];
    5. }

    8.销毁空间
    1. void myCircularQueueFree(MyCircularQueue* obj) {
    2. free(obj->a);
    3. free(obj);
    4. }

  • 相关阅读:
    python:网络安全攻击与防御的工具(附零基础学习资料)
    python 2018全国自学考试第5章 第36题。好激动呀 排名23310
    董事长、CEO、总裁、总经理、总监的区别
    器械团体怎么利用自动化流程缩短工程期限
    springboot+mybatis拦截器实现水平分表操作
    Java:递归扫描某个文件下所有文件并使用正则匹配文件
    华为云应用中间件DCS系列—Redis实现(电商网站)秒杀抢购示例
    C++ 学习(15)文件操作、文件文件读与写操作、二进制文件读与写操作
    嵌入式Linux应用开发-驱动大全-第一章同步与互斥②
    GD32f103系列教程—(时钟篇)
  • 原文地址:https://blog.csdn.net/m0_57383688/article/details/133470902
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号