• Python将list列表维护成一个栈


    • 1、简单了解:

    栈(stack)又名堆栈,它是一种运算受限的线性表。

    限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。

    向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;

    从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    "栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

    ——百度百科

    • 2、代码实现:

    下面是将python中内置的list数据类型维护成一个栈的简单实现:

    class Stack(object):
            """该类将list列表维护成一个栈"""
    
    	def __init__(self):
    		self.items = []
    
    	def isEmpty(self):
    		"""判断栈是否为空"""
    		return self.items == []
    
    	def push(self, item):
    		"""添加一个新的元素item到栈顶"""
    		self.items.append(item)
    
    	def pop(self):
    		"""弹出栈顶元素"""
            if self.isEmpty():
                return "Stack Is Empty"
    		return self.items.pop()
    
    	def top(self):
    		"""返回栈顶元素"""
    		return self.items[len(self.items) - 1]
    
    	def size(self):
    		"""返回栈的元素个数"""
    		return len(self.items)
    

    现在,使用该Stack类实例化一个栈后,就能用其方法了:

    stack = Stack()
    print(stack.isEmpty())
    print()
    stack.push('you')
    stack.push('love')
    stack.push('I')
    print(stack.top())
    print(stack.size())
    print(stack.isEmpty())
    print(stack.pop())
    print(stack.pop())
    print(stack.pop())
    print(stack.size())
    

    打印结果:

    True
    I
    3
    False
    I
    love
    you
    0
    

    以上。

  • 相关阅读:
    学习CLR Via C#的一些体会
    ScrollView动画滚动
    使用blend自定义symbol
    Silverlight中消除ToolTip的白色背景
    nil,NULL,NSNull的区别
    app store,Mac app store 下载加速的方法
    发布时NSLog不打印信息
    TestFlight的使用步骤
    “Could not change executable permissions on the application”的原因和解决方法
    iOS6地图“查看路线”、导航功能的实现
  • 原文地址:https://www.cnblogs.com/sirxy/p/12148081.html
Copyright © 2020-2023  润新知