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)的数据结构,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在一端进行加入数据和输出数据操作。
栈可以使用顺序存储结构的内存空间实现,其内存空间分布如下:
二、应用
根据栈的特点,列表可以作为栈使用。
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']
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永远不会缺席!
如需转发,请注明出处:小婷儿的博客python https://www.cnblogs.com/xxtalhr/
博客园:https://www.cnblogs.com/xxtalhr/
CSDN:https://blog.csdn.net/u010986753
有问题请在博客下留言或加作者:
微信:tinghai87605025
QQ :87605025
python QQ交流群:py_data 483766429
培训说明:
OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA
OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。重要的事多说几遍。。。。。。
文章内容来源于小婷儿的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解 有趣的事,Python永远不会缺席!
如需转发,请注明出处:小婷儿的博客python https://www.cnblogs.com/xxtalhr/
博客园:https://www.cnblogs.com/xxtalhr/
CSDN:https://blog.csdn.net/u010986753
有问题请在博客下留言或加作者:
微信:tinghai87605025
QQ :87605025
python QQ交流群:py_data 483766429
培训说明:
OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA
OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。重要的事多说几遍。。。。。。