14_Python将列表做为栈和队列_Python编程之路

上一篇文章跟你们介绍了列表的一些方法,这一节咱们仍是讲列表前端

只是这一节咱们要联系一些数据结构,来说列表python

 

首先咱们要理解一下栈是一种什么数据结构后端

 

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅容许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另外一端称为栈底。向一个栈插入新元素又称做进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称做出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素数据结构

 

经过下面一张图理解一下栈是怎么工做的app

 

简单来说就是后进先出3d

 

下面咱们经过python列表的append()和pop()来简单实现栈的功能blog

例如如下代码队列

In [1]: stack = [2, 3, 4, 5]

In [2]: stack.append(6)

In [3]: stack.append(7)

In [4]: stack
Out[4]: [2, 3, 4, 5, 6, 7]

In [5]: stack.pop()
Out[5]: 7

In [6]: stack
Out[6]: [2, 3, 4, 5, 6]

In [7]: stack.pop()
Out[7]: 6

In [8]: stack.pop()
Out[8]: 5

In [9]: stack
Out[9]: [2, 3, 4]

  

总体就是这样一个栈的结构,入栈与出栈,是按照后进先出的顺序进行的博客

 

 

队列

 队列也是一种特殊的线性表,特殊之处在于它只容许在表的前端(front)进行删除操做,而在表的后端(rear)进行插入操做,和栈同样,队列是一种操做受限制的线性表。进行插入操做的端称为队尾,进行删除操做的端称为队头。io

简单来讲就是先进先出的一种数据结构 

 

使用列表实现队列的功能若是用collections包里面的deque方法会更好

下面是队列的代码演示

In [1]: from collections import deque

In [2]: queue = deque(["ayesup", "jack", "Tom"])

In [3]: queue.append("susmote")

In [4]: queue.append("eric")

In [5]: queue.popleft()
Out[5]: 'ayesup'

In [6]: queue.popleft()
Out[6]: 'jack'

In [7]: queue
Out[7]: deque(['Tom', 'susmote', 'eric'])

 

开始先导包,而后使用deque生成一个队列形式的列表,而后使用列表的方法简单实现一个先入先出的功能

 

 

关于stack和队列就讲到这里,后面可能还会有涉及这部分的知识

 

官方博客 www.susmote.com

相关文章
相关标签/搜索