本文以一个初始为空的循环队列Q[0,7]为例,详细演示了入队、出队操作对队列头尾指针和队列元素的影响,并解释了队列满时无法入队的原因。

初始状态:front=rear=0

①. d, e, b, g, h入队:

  1. 元素d入队:Q[rear] = 'd',rear = 1
  2. 元素e入队:Q[rear] = 'e',rear = 2
  3. 元素b入队:Q[rear] = 'b',rear = 3
  4. 元素g入队:Q[rear] = 'g',rear = 4
  5. 元素h入队:Q[rear] = 'h',rear = 5

队列状态变化:front=0, rear=5,队列元素为:'d', 'e', 'b', 'g', 'h'

②. d, e出队:

  1. 元素d出队:front = 1
  2. 元素e出队:front = 2

队列状态变化:front=2, rear=5,队列元素为:'b', 'g', 'h'

③. i, j, k, l, m入队:

  1. 元素i入队:Q[rear] = 'i',rear = 6
  2. 元素j入队:Q[rear] = 'j',rear = 7
  3. 元素k入队:无法入队,队列已满。理由是rear + 1等于front,队列已满无法继续入队。

队列状态变化:front=2, rear=7,队列元素为:'b', 'g', 'h', 'i', 'j'

④. b出队:

  1. 元素b出队:front = 3

队列状态变化:front=3, rear=7,队列元素为:'g', 'h', 'i', 'j'

⑤. n, o, p, q, r入队:

  1. 元素n入队:Q[rear] = 'n',rear = 0(循环队列的特性,rear回到队列的起始位置)
  2. 元素o入队:Q[rear] = 'o',rear = 1
  3. 元素p入队:Q[rear] = 'p',rear = 2
  4. 元素q入队:Q[rear] = 'q',rear = 3
  5. 元素r入队:Q[rear] = 'r',rear = 4

队列状态变化:front=3, rear=4,队列元素为:'g', 'h', 'i', 'j', 'n', 'o', 'p', 'q', 'r'

最终队列状态:front=3, rear=4,队列元素为:'g', 'h', 'i', 'j', 'n', 'o', 'p', 'q', 'r'

循环队列操作演示:入队、出队及状态变化

原文地址: https://www.cveoy.top/t/topic/kBZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录