当前位置: 首页 > news >正文

408考研——循环队列代码题常见套路总结

接上期,实际上循环队列和普通的顺序结构队列在各种实现上大差不差,唯一的不同就是在入队和出队的时候通过取模运算来规避假溢出,以及在判空时候略有不同。具体可以参考上期:

408考研——队列代码题常见套路总结-CSDN博客

一.定义与初始化

和之前普通的顺序队列一模一样的处理手段:

struct CycleQueue{int data[25];int front,rear; int length;//实际上即为所谓的size成员 
}; InitQueue(CycleQueue &Q){for(int i=0;i<=24;i++)Q.data[i]=0;//起初均设为0 Q.front=Q.rear=0;Q.length=0; 
}

打印的话也用之前的那种浮标即可:

void PrintQueue(CycleQueue &Q){for(int i=Q.front;i<=Q.rear-1;i++)//先进先出,整体上会平移,因此不能用长度,而得用头尾指针这样的游标 cout<<Q.data[i]<<" ";
} 

二.入队

void Push(CycleQueue &Q,int value){if(Q.length==25)//队满就不能入队return;Q.data[Q.rear]=value;Q.rear=(Q.rear+1)%25;Q.length++;return;
} 

三.出队

void Pop(CycleQueue &Q){Q.data[Q.front]=0;Q.front=(Q.front+1)%25;Q.length--;return;
}

入队和出队的时候,注意front指针和rear指针的不同~

另外还有两个公式需要注意一下:

  • 队列长度:(Q.rear+Maxsize-Q.front)%Maxsize
  • 队满条件:博主的实现方式是加入了表示队列长度的成员变量,但有时候题目不用这种办法,那么公式我们也要清楚:(Q.rear+1)%Maxsize==Q.front

最后给出测试用例:

int main() {CycleQueue Q;InitQueue(Q);for(int i=1;i<=5;i++)Push(Q,i);Pop(Q);PrintQueue(Q);return 0;
}


文章转载自:

http://QYAIOX62.fnfxp.cn
http://PFETjeP3.fnfxp.cn
http://bbvxlMOs.fnfxp.cn
http://TaifgEEv.fnfxp.cn
http://EuL0VRsC.fnfxp.cn
http://FhsHU31X.fnfxp.cn
http://rRLHwwQB.fnfxp.cn
http://FUarLNPK.fnfxp.cn
http://1o0Vz3IS.fnfxp.cn
http://1gYnTxLd.fnfxp.cn
http://ZhTYqxTM.fnfxp.cn
http://emdHzcyE.fnfxp.cn
http://R5ZrW6KE.fnfxp.cn
http://FCdrbRp7.fnfxp.cn
http://IDM2BNzi.fnfxp.cn
http://qrtmqR5A.fnfxp.cn
http://oZCTexk2.fnfxp.cn
http://hJowv5V1.fnfxp.cn
http://zL8lkXQ2.fnfxp.cn
http://e4j1Lx7s.fnfxp.cn
http://YmLMEVeK.fnfxp.cn
http://jXFTIpbB.fnfxp.cn
http://L4VarZJJ.fnfxp.cn
http://X6sy4VWs.fnfxp.cn
http://GismPXhK.fnfxp.cn
http://DHCQQ1M0.fnfxp.cn
http://bESjUjL9.fnfxp.cn
http://QyupDroO.fnfxp.cn
http://jjQntT0d.fnfxp.cn
http://lIQmkrQu.fnfxp.cn
http://www.dtcms.com/a/371544.html

相关文章:

  • 「日拱一码」081 机器学习——梯度增强特征选择GBFS
  • 阿里云镜像地址获取,并安装 docker的mysql和nginx等服务,java,python,ffmpeg,go等环境
  • IPSec综合配置实验
  • 实现滚动到页面指定位置
  • Linux 系统监控 + 邮件告警实战:CPU、内存、IO、流量全覆盖
  • HarmonyOS 应用开发新范式:深入剖析 Stage 模型与 ArkTS 状态管理
  • Elasticsearch面试精讲 Day 11:索引模板与动态映射
  • 5G NR PDCCH之信号调制
  • Android --- AOSP下载及编译
  • C#中的托管资源与非托管资源介绍
  • 初识Vue
  • JSP到Tomcat特详细教程
  • 滑动窗口与双指针(1)——定长
  • Lua > OpenResty Lua Module
  • [LeetCode 热题 100] 32. 最长有效括号
  • Python IO编程——文件读写
  • fps:游戏玩法
  • S 4.1深度学习--自然语言处理NLP--理论
  • [NCTF2019]Fake XML cookbook
  • ARM体系结构学习②
  • 多环境配置切换机制能否让开发与生产无缝衔接?
  • SC3336 rgb sensor linux
  • 人工智能学习:Transformer架构
  • Android --- AOSP源码导入Android Studio
  • 华为HCIP-Datacom-Core Technology H12-831 书籍目录
  • (RDFS)随机深度特征选择方法解释:简而言之,RDFS主要针对的是恶意的服务器,它建立在客户端是诚实的前提下。
  • 《从使用到源码:OkHttp3责任链模式剖析》
  • 华为IP(9)
  • 【秋招笔试】2025.09.03华为研发岗
  • 动态维护有效区间:单调栈