循环队列

#代码实现--结构及初始化

  • 关于循环队列的实现一共有两种解法,但本质都是牺牲一部分空间换区判空条件
  • 不多说,看图 Pasted image 20260622171157.png
  • #代码实现--判空

  • 两种结构的判空条件为:
  • Pasted image 20260622171247.png

  • 第一种,front\==rear,牺牲的是队列内部空间
  • 第二种,设置size,牺牲的是外部空间
  • #代码实现--判满

    Pasted image 20260622171404.png

  • 判满条件
  • 第一种利用取模,是front达成逻辑上的循环--当front走到数组末尾并再继续向前走时,会自动回到数组开头。
  • 第二种,判满则直接让size等于数组的最大值
  • #代码实现--插入

    Pasted image 20260622172028.png

  • 增,对队尾指针rear指向的空间添加data,然后front指针加一,一样的,利用取模机制,使之达成闭环
  • 两种解法的添加函数基本一致
  • #代码实现--删除

    Pasted image 20260622172329.png

  • 删除操作,和增加操作类似,不过操作的指针是front