在Python中,双端队列是一种数据结构,例如堆栈和队列。它允许从队列的两端进行追加和弹出操作。这使其与其余数据结构不同。下面列出了适用于双端队列的各种操作。在本文中,我们将看到每个操作的示例。该集合模块用于实现双端队列。
以下是使用双端队列进行的一些有用操作
append() - 此函数用于将其参数中的值插入到双队列的右端。
appendleft() - 此函数用于将其参数中的值插入到双端队列的左端。
pop() - 此函数用于从双端队列的右端删除参数。
popleft()- 此函数用于从双端队列的左端删除一个参数。
extend(iterable) - 此函数用于在双端队列的右端添加多个值。传递的参数是可迭代的。
extendleft(iterable) - 此函数用于在双端队列的左端添加多个值。传递的参数是可迭代的。由于左侧追加,顺序颠倒了。
reverse() - 此函数用于反转双端队列元素的顺序。
rotation() - 该函数将双端队列旋转参数中指定的数字。如果指定的数字为负,则向左旋转。其他旋转向右。
下面的程序显示了如何使用双端队列和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])