数据结构与算法——栈与队列(一)

本文介绍了栈这一数据结构的基本概念和操作,包括顺序栈和链栈的特点。顺序栈在数组中存储数据,插入和删除操作的时间复杂度在不同情况下分别为O(1)和O(n)。链栈则允许动态增长,插入和删除操作均为O(1)。栈的应用包括括号匹配和浏览器历史记录管理等。
摘要由CSDN通过智能技术生成

(一) 栈

定义

栈是一种特殊的线性表,与数组和链表的不同之处体现在增加和删除操作。具体表现在栈的读取插入和删除操作只能在栈的末尾进行。栈是一种先进后出的线性表结构,用数组存储数据的栈叫顺序栈,用链表的形式存储数据的栈我们叫链栈。

栈的基本操作

对于栈来说,插入数据以及删除数据都只能在栈尾进行,在栈中增加数据我们叫压栈push,删除栈中的数据我们叫出栈pop。

接下来对于栈的基本操作,我们分别基于顺序栈和链栈来进行讨论。

顺序栈

在这里插入图片描述

class ArrayStack():
    """顺序栈"""
    def __init__(self, length):
        """顺序栈的初始化
        参数:
            n: 栈的大小
        """
        self.stack = []
        self.top = 0
        self.length = length

**查找数据:**顺序栈是用数组存储数据的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值