zoukankan      html  css  js  c++  java
  • 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
    

    以上。

  • 相关阅读:
    读《梦断代码》有感
    The Third Group Meeting!
    第一次课程作业项目报告
    第四次读后感
    个人作业进度(五)
    个人作业进度(四)
    个人作业进度(三)
    个人进度(二)
    个人作业进度(一)
    java中类的封装与继承
  • 原文地址:https://www.cnblogs.com/sirxy/p/12148081.html
Copyright © 2011-2022 走看看