品易云推流 关闭
文章 > Python基础教程 > python栈支持的操作

python栈支持的操作

头像

小妮浅浅

2021-04-29 17:18:41472浏览 · 0收藏 · 0评论

1、说明

Stack()创建一个空栈。不需要参数,会回到空栈;

s.isEmpty()检查栈是否为空,无需参数,并返回布尔值;

s.push(item)添加一个元素。它需要一个参数item,没有返回值;

s.peek()返回栈顶部的元素,但不能移除。无需参数或修改栈内容;

s.size()返回栈中元素的数量。无需参数,可返回整数;

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

2、实例

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基础教程

关注公众号

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图 底部广告图按钮