Python - 双端队列 (Deque)


在 Python 中,双端队列 (deque) 是一种类似于栈和队列的数据结构。它允许在队列的两端进行添加和弹出操作,这使其区别于其他数据结构。下面列出了适用于双端队列的各种操作。在本文中,我们将看到每个操作的示例。 `collections` 模块用于实现双端队列。

双端队列操作

以下是使用双端队列执行的一些常用操作

  • append() − 此函数用于将参数中的值插入到双端队列的右侧。

  • appendleft() − 此函数用于将参数中的值插入到双端队列的左侧。

  • pop() − 此函数用于从双端队列的右侧删除一个元素。

  • popleft() − 此函数用于从双端队列的左侧删除一个元素。

  • extend(iterable) − 此函数用于在双端队列的右侧添加多个值。传递的参数是可迭代对象。

  • extendleft(iterable) − 此函数用于在双端队列的左侧添加多个值。传递的参数是可迭代对象。由于左侧添加,顺序会反转。

  • reverse() − 此函数用于反转双端队列元素的顺序。

  • rotate() − 此函数根据参数中指定的数字旋转双端队列。如果指定的数字为负数,则向左旋转;否则向右旋转。

示例

下面的程序演示了如何使用双端队列和 `collections` 模块实现上述操作。

 在线演示

import collections
de = collections.deque([10,20,30,40])
print(de)
de.append(50)
print ("\nAppending at right the deque is : ")
print (de)
de.appendleft(60)
print ("\nAppending at left the deque is : ")
print (de)
de.pop()
print ("\nDeleting from right the deque is: ")
print (de)
de.popleft()
print ("\nDeleting from left the deque is: ")
print (de)
de.extend([70,80])
print ("\nExtending deque at end is : ")
print (de)
de.extendleft([100,90])
print ("\nExtending deque at beginning is : ")
print (de)
de.rotate(-2)
print ("\nRotating deque is : ")
print (de)
de.reverse()
print ("\nReversing deque is : ")
print (de)

输出

运行以上代码将得到以下结果:

deque([10, 20, 30, 40])
Appending at right the deque is :
deque([10, 20, 30, 40, 50])
Appending at left the deque is :
deque([60, 10, 20, 30, 40, 50])
Deleting from right the deque is:
deque([60, 10, 20, 30, 40])
Deleting from left the deque is:
deque([10, 20, 30, 40])
Extending deque at end is :
deque([10, 20, 30, 40, 70, 80])
Extending deque at beginning is :
deque([90, 100, 10, 20, 30, 40, 70, 80])
Rotating deque is :
deque([10, 20, 30, 40, 70, 80, 90, 100])
Reversing deque is :
deque([100, 90, 80, 70, 40, 30, 20, 10])

更新于:2020年2月14日

391 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告