基础数据结构:栈、队列——Python实现

本文介绍如何使用Python实现基础数据结构中的栈和队列,包括顺序栈、顺序队列、链式栈和链式队列。通过继承顺序表和链表,利用list的append和pop方法,以及利用双向循环链表实现,详细阐述了数据结构的逻辑特性和编程实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础数据结构:栈、队列——Python实现

上一节我们重点介绍了数据结构的顺序与链式存储结构,那么这次我们来实现一下队列这两种最基础的线性逻辑结构。

对栈和队列最简单的描述,也是它们最核心的性质,就是:

  • 栈 —— 后进先出
  • 队列 —— 先进先出

一个简单的比喻就是:
像是将书一本本依次平摞在一个箱子里,后放入箱子的将先被拿出。
队列就如排队,先来排队的人先被接待。

这是逻辑上的两种数据结构,对应我们前面所讲的顺序表链表两种存储结构,我们在编程实现数据结构时又可以通过继承以上两种表,派生出顺序栈、顺序队列、链式栈、链式队列。或者单独实现栈和队列的基类,通过多重继承(c++\Python)或者组合(Java)两两结合得出以上四种数据结构。


使用Python的list实现顺序栈和顺序队列十分简单,我们只需要继承上一节中的顺序表,再添加一个出栈或出队列的函数即可:

# 基类:顺序表
class List:

    def __init__(self):
        self.list = []

    def __str__(self):
        return str(self.list)

    def put(self, item):
        self.list.append(item)

    def size(self):
        return len(self.list)

    def isEmpty(self):
        return self.list == []

# 子类:顺序栈
class ListStack(List):

    def pop(self):
        if self.isEmpty():
            return None
        else:
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值