python 数据结构 - 栈

如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10293388.html

欢迎关注小婷儿的博客:

有问题请在博客下留言或加作者微信:tinghai87605025 或 QQ :87605025

python QQ交流群:py_data 483766429

博客园:http://www.cnblogs.com/xxtalhr/

csdn:https://blog.csdn.net/u010986753

一、概念

栈(stack),有些地方称为堆栈,是一种后入先出(LIFO,last-in-first-out)的数据结构,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在一端进行加入数据和输出数据操作。

栈可以使用顺序存储结构的内存空间实现,其内存空间分布如下:

python 数据结构 - 栈

二、应用

根据栈的特点,列表可以作为栈使用。

append相当于入栈、pop相当于出栈;

xxt = [1,2,3,'a','b','c']

xxt.append(6) #入栈 [1, 2, 3, 'a', 'b', 'c', 6]

xxt.pop() #出栈 [1, 2, 3, 'a', 'b', 'c']

  python 数据结构 - 栈


class Stack:
def __init__(self):
self.xxt = [] def push(self, info):
'''入栈'''
self.xxt.append(info)
return self.xxt def pop(self):
'''出栈'''
return self.xxt.pop() def isEmpty(self):
'''判断栈中是否有元素'''
return len(self.xxt) == 0 def size(self):
'''获取栈中元素个数'''
return len(self.xxt) if __name__ == '__main__':
xxt = [1, 2, 3, 'a', 'b', 'c']
xxt.append(6) # [1, 2, 3, 'a', 'b', 'c', 6]
xxt.pop() # [1, 2, 3, 'a', 'b', 'c'] stack = Stack()
print('stack.push66:', stack.push(66))
print('stack.push13:', stack.push(13))
print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
# print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt)) #IndexError: pop from empty list '''结果
stack.push66: [66]
stack.push13: [66, 13]
stack.pop:13,xxt:[1, 2, 3, 'a', 'b', 'c']
stack.pop:66,xxt:[1, 2, 3, 'a', 'b', 'c']
'''

  

三、栈的相关概念:

  栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。

  压栈:栈的插入操作,叫做进栈,也称压栈、入栈,通常命名为push。

  弹栈:栈的删除操作,也叫做出栈,通常命名为pop。

OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。

重要的事多做几遍。。。。。。

python 数据结构 - 栈

上一篇:Windows命令计算MD5与SHA1/256值


下一篇:【C#】记录程序耗时方法