标签:基本 items self 顶端 test 操作 数据结构 def
1.线性数据结构
线性数据结构可以想象成一个管或者桶一样的结构,元素的位置是相对确定的,取决于添加
或者删除的顺序。
2.栈
首先什么是栈?
栈相当于一个顶端开头的五面体容器或者圆筒。具体如下图所示:
上图很清楚的表示了栈的结构与栈添加和删除元素的顺序。栈的操作都是在顶端完成的,顶端入栈和顶端出栈,这就造成了一个现象,也就是所谓的先进后出。可以看成是行军队列,正常情况是向前进军。如果需要返回,则最快的方法是后队变前队,开头也就变成了末尾。
看一下栈所支持的操作:
1.push操作,将元素添加到栈顶端
2.pop操作,即元素的删除操作
3.peek操作,查看操作,由于栈的一切操作都在顶端,也只能查看顶端元素
4.isEmpty操作,判断栈是否为空
5.size操作,返回栈元素的个数
下面来用python实现栈。
由于栈这个数据结构不是python内置的,那就需要我们去定义它。先来想想python中哪种容器结构适合用来创建栈。列表,字典,元组,集合。如果熟悉这几种数据类型的话肯定是list最适合,首先它符合顺序结构的要求,又有丰富的操作可以满足栈的操作。下面将使用list来构建一个栈:
class Stack:
'''
使用列表来创建栈
思路:使列表的添加与删除符合栈的一端操作即可。将列表末端做为栈顶端进行操作
'''
def __init__(self):
#这里将栈定义为空列表
self.items = []
def push(self,item):
return self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def isEmpty(self):
return self.items == []
def size(self):
return len(self.items)
展示栈的使用效果:
s_test = Stack() s_test.push(1) s_test.push(2) print(s_test.peek()) print(s_test.pop()) print(s_test.isEmpty()) print(s_test.size()) 输出: 2 2 False 1
python调用栈
安装第三方库
pip install pythonds
from pythonds.basic import Stack
s_test = Stack()
标签:基本,items,self,顶端,test,操作,数据结构,def 来源: https://www.cnblogs.com/peiziming/p/13237662.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。