Python实现的栈(Stack)

本文介绍了栈这种后进先出(LIFO)的数据结构,并以Python为例,利用内置的list来简单实现栈的功能,包括创建栈对象、入栈和出栈操作。通过将list包装成类并添加相应方法,可以便捷地实现栈的操作。
摘要由CSDN通过智能技术生成

栈是一种只能在一端进行插入和删除操作的数据结构。

前言

python本身已有顺序表(List、Tupple)的实现,所以这里从栈开始

什么是栈

想象在桌子上放一摞书,这就是栈。这堆书的特点就是,最后被堆进去的,永远在最上面。从这堆书中取出一本书,哪本最方便?还是最上面的那本。栈这种数据结构就是如此:后进先出(Lask In First Out),即最后被堆进去的数据,最先被拿出来。

栈的实现

栈可以用顺序表方式实现,也可以用链表方式实现。我大Python的内建数据结构太强大,可以用list直接简单快捷。人生苦短,我用Python。

class Stack(object):
    # 初始化栈为空列表
    def __init__(self):
        self.items =[]
    # 判断栈是否为空,返回布尔值
    def is_empty(self):
        return self.items == []
    # 返回栈顶元素
    def peek(self):
        return self.items[len(self.items)-]
    # 返回栈的发小
    def size(self):
        return len(self.items)
    # 把新的元素压入栈
    def push(self,item):
        self.items.append(item)
    # 把栈顶元素丢出去(出栈)
    def pop(self,item):
        return self.items.pop()    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值