编写程序,对一个含有 n 个元素的队列,出队从队头到队尾的第 k 个元素(1 ≤k≤n),其他队列元素不变。 提示:利用临时队列 tmpque,保存 k-1 个元素,出队第 k 个元素后,将剩 余元素复制至 tmpque
时间: 2023-06-19 15:07:24 浏览: 100
队列的程序
以下是使用 Python 语言实现的程序:
```python
def dequeue_k(queue, k):
if k < 1 or k > len(queue):
return "k is out of range"
else:
tmpque = []
for i in range(k-1):
tmpque.append(queue.pop(0))
queue.pop(0)
for i in range(len(queue)):
tmpque.append(queue.pop(0))
for i in range(len(tmpque)):
queue.append(tmpque.pop(0))
return queue
```
程序中,我们首先判断 k 是否越界,如果是,则返回提示信息;如果不是,则创建一个临时队列 tmpque,将队头到第 k-1 个元素依次出队并保存到 tmpque 中。然后出队第 k 个元素。接着,将原队列中剩余的元素全部出队,并依次保存到 tmpque 中。最后,将 tmpque 中的所有元素依次入队到原队列中,完成队列元素的更新。最终返回更新后的队列。
例如,对于队列 [1, 2, 3, 4, 5],执行 dequeue_k([1, 2, 3, 4, 5], 3) 后,返回的更新后的队列为 [1, 2, 4, 5, 3]。
阅读全文