数据结构算法:循环队列的实现

本文介绍了循环队列的基本思想,它是一种顺序存储结构,避免了数组越界问题。通过头指针和尾指针的概念,阐述了入队、出队的操作,并提供了判空和判满的条件。循环队列解决了普通队列在空间满时可能导致的非法操作问题。
摘要由CSDN通过智能技术生成

思路

说到队列,第一个想到的无非就是他的特性,先进先出,队列就好比我们日常生活中等待叫号,先取号的号总是在后取号的人前面被叫到号,那么这个业务逻辑就可以用队列来实现,而今天讲的队列叫循环队列,他一种顺序存储结构,故需要开辟一片数组空间用于存放数据。同时引入了头指针和尾指针的两个概念。

那么就要思考一个问题:当我定义存储空间大小为6的数组,那么当我插入到一定个数的时候,队满,如果再添加元素,指针就会指向空间外,从而引发因数组越界而导致程序的非法错误操作,那么基于此我们就引入了循环队列的概念。

附上图片进行理解

 那么就可以知道基本操作:

入队:尾指针向后移动

出队:头指针向后移动
判空:头指针的值 == 尾指针的值? (这里的值指的是索引值)

判满:(尾指针的索引值+1)%数组的最大长度 == 头指针的索引值?

因为要对队列进行判满,所以需要牺牲一块存储空间才可以判断;

附上代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值