ITPub博客

首页 > IT职业 > IT职场 > python栈支持的操作

python栈支持的操作

IT职场 作者:LeeC 时间:2021-09-11 09:53:22 0 删除 编辑

说明

1、Stack()创建一个空栈。

不需要参数,会回到空栈;

2、s.isEmpty()检查栈是否为空。

无需参数,并返回布尔值;

3、s.push(item)添加一个元素。

它需要一个参数item,没有返回值;

4、s.peek()返回栈顶部的元素。

但不能移除。无需参数或修改栈内容;

5、s.size()返回栈中元素的数量。

无需参数,可返回整数;

s.pop():移除栈顶部的元素。不需要参数,但会返回顶部元素,修改栈的内容;

实例

class Stack():
    """
    栈方式1:假设列表的尾部是栈的顶端。当栈增长时(即进行push操作), 新的元素会被添加到列表的尾部。pop操作同样会修改这一端。
    将允许进行插入、删除的一端称为栈顶,另一端称为栈底。
    """
 
    # 创建一个空栈
    def __init__(self):
        self.__list = []
 
    # 检查栈是否为空:判断是否等于一个空列表
    def isEmpty(self):
        return self.__list == []
        # return not self.__list
 
    # 统计栈的长度
    def size(self):
        return len(self.__list)
 
    # 返回栈顶元素
    def peek(self):
        # return self.__list[len(self.__list)-1]
        if self.__list:
            return self.__list[-1]
        else:
            return None
 
    # 入栈(把列表尾部假设为栈顶)
    def push(self, item):
        self.__list.append(item)
 
    # 出栈
    def pop(self):
        return self.__list.pop()
 
 
class Stack2:
    """
    栈方式2:选择将列表头部作为顶端,必须用pop方法和insert方法显式地访问下标为0的元素,即列表中的第一个元素;
    """
 
    def __init__(self):
        self.__list = []
 
    def isEmpty(self):
        """判断栈是否为空"""
        # return self.__list == []
        return not self.__list
 
    def size(self):
        """返回栈的元素个数"""
        return len(self.__list)
 
    # 入栈
    def push(self, item):
        """添加一个新的元素item到栈顶"""
        self.__list.insert(0, item)
 
    # 出栈
    def pop(self):
        return self.__list.pop(0)
 
    def peek(self):
        """返回栈顶元素"""
        if self.__list:
            return self.__list[0]
        else:
            return None
 
 
if __name__ == '__main__':
    s = Stack2()
    print(s.isEmpty())
    s.push('a')
    s.push('b')
    s.push('小明')
    s.push('c')
    print(s.size())
 
    print(s.pop())
    print(s.pop())
    print(s.pop())
    print(s.pop())

以上就是python栈支持的操作,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4352/viewspace-2829645/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    86
  • 访问量
    659