Python实现堆栈(列表结构和链表结构)

本文介绍了堆栈数据结构的LIFO特性,并以Python为例,详细阐述了利用列表结构实现定容堆栈及链表结构实现变容堆栈的方法,通过实例展示了两种实现方式的运行效果。
摘要由CSDN通过智能技术生成

堆栈是一种数据项按序排列的数据结构,具有“后进先出”(LIFO)的特点,堆栈所有的操作都在其顶端执行,在顶端进行插入和移除。

堆栈好比我们常见的羽毛球盒子,一个圆柱体的羽毛球盒子中从上到下装了很多羽毛球,盒子的开口在顶端,这样,如果先放入盒子的羽毛球就会在盒子的下面,取出时就会后拿到,如果后放入盒子的羽毛球就会在盒子的上面,取出时就会先拿到。      

在Python中,实现堆栈有两种方式:列表结构、链表结构

我下面通过代码分别展示两种堆栈的实现,由于堆栈既可以是定容(容量)的,又可以是变容(容量)的,所以我使用列表结构来实现了定容堆栈,用链表结构来实现了变容堆栈。

一、列表结构(定容)

class ListStack:
    """列表结构堆栈类"""
    def __init__(self):
        """初始化堆栈的属性"""
        self.max_stack = 10  # 定义堆栈的容量
        self.stack = [None] * self.max_stack  # 声明堆栈列表
        self.top = -1  # 堆栈的顶端,-1表示堆栈为空

    def is_empty(self):
        """判断堆栈是否为空"""
        if self.top == -1:
            return True
        else:
            return False

    def push(self, data):
        """向堆栈中存入数据"""
        if self.top >= self.max_stack - 1:
            print(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值