Python小例子的朋友们,大家晚上好!今天演示如何使用Python内置结构模拟两种常用的数据结构:
列表实现栈数据结构;
双端队列实现队列数据结构
列表封装的这些方法,实现栈这个常用的数据结构比较容易。栈是一种只能在列表一端进出的特殊列表,pop方法正好完美实现:
In [23]: stack=[1,3,5] In [24]: stack.append(0) # push元素0到尾端,不需要指定索引 In [25]: stack Out[25]: [1, 3, 5, 0] In [26]: stack.pop() # pop元素,不需指定索引,此时移出尾端元素 Out[26]: 0 In [27]: stack Out[27]: [1, 3, 5]由此可见Python的列表当做栈用,完全没有问题,push 和 pop 操作的时间复杂度都为 O(1)
但是使用列表模拟队列就不那么高效了,需要借助Python的collections模块中的双端队列deque实现。如下模拟队列的先进先出,后进后出:
In [1]: from collections import deque In [2]: queue = [1,3,5] In [3]: deq = deque(queue) In [4]: deq.append(0) In [5]: deq Out[5]: deque([1, 3, 5, 0]) # 后进插入到队列尾部 In [6]: deq.popleft() Out[6]: 1 In [7]: deq Out[7]: deque([3, 5, 0])# 先进的先出
原创不易,欢迎大家点赞支持。对学习算法感兴趣的朋友可关注下方: