python----栈详解及构建与应用的python语法实现

(stack),有些地⽅称为堆栈,是⼀种容器,可存⼊数据元素、访问元素、删除元素,它的特点在于只能允许在容器的⼀端(称为栈顶端指标,英语:top)进⾏加⼊数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存⼊的那个元素,确定了⼀种默认的访问顺序。
由于栈数据结构只允许在⼀端进⾏操作,因⽽按照后进先出(LIFO, Last In First Out)的原理运作。
栈的图示

语法实现:

class Stack():
    """栈"""
    def __init__(self):
        self.__items = []
        # self.__items = SingleLinkList() # 也可用链表


    def push(self,item):
        """添加一个新元素item到栈顶"""
        self.__items.append(item)  # 列表首尾O(1)
        # self.__items.insert(0,item)  #列表首O(n)


    def pop(self):
        """弹出栈顶元素"""
        return self.__items.pop()
        # return self.__items.pop(0)


    def peek(self):
        """返回栈顶元素"""
        return self.__items[-1]
        # return self.__items[len(self.__items)-1]


    def is_empty(self):
        """判断是否为空"""
        return self.__items == []
        # return self.__items is None


    def size(self):
        """返回栈的元素个数"""
        return len(self.__items)


if __name__ == '__main__':
    stack = Stack()
    stack.push("hello")
    stack.push("world")
    stack.push("itcast")
    print(stack.peek())
    print(stack.is_empty())

结果:

itcast
False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值