前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3面试题:如何用python实现栈(Stack)的操作?

python3面试题:如何用python实现栈(Stack)的操作?

作者头像
上海-悠悠
发布2021-11-23 17:20:54
1.4K0
发布2021-11-23 17:20:54
举报

前言

常见python面试题:如何用python实现栈(Stack)的操作?

什么是栈(Stack)

栈是一个很基本的数据结构,也是非常重要的数据结构,栈的特点:“先进后出,后进先出”,举个生活中最常见的例子

弹夹大家并不陌生,先按进去的最后才打出来,最后按进去的最先打出来,这就是栈的数据结构。

下图是详细的栈结构

所有的操作只在一端进行(如:弹夹),有2个最基本的操作,入栈(子弹按进去) 和 出栈 (子弹弹出来)。 栈有两端,最底端叫栈底,最上端叫栈顶。

python 实现栈(Stack)

弄清楚了栈的基本结构和操作后,就可以用python写一个栈(Stack) 定义抽象数据类型栈的各种操作:

  • Stack():创建一个空栈,不包含任何数据项
  • push(item): 将item加入栈顶,无返回值
  • pop(): 将栈顶数据项移除,并返回所移除的值,栈被修改
  • peek(): “窥视”栈顶数据项,返回栈顶的数据项但不移除,栈不被修改
  • isEmpty(): 返回栈是否为空栈
  • size(): 返回栈中有多少个数据项
代码语言:javascript
复制
class Stack(object):
    def __init__(self):
        self.items = []

    def is_empty(self):
        """判断是否为空集"""
        return self.items == []

    def push(self, item):
        """添加新元素到栈顶"""
        self.items.append(item)

    def pop(self):
        """删除栈顶元素"""
        return self.items.pop()

    def peek(self):
        """窥探栈顶元素"""
        return self.items[-1]

    def size(self):
        """查看栈的大小"""
        return len(self.items)

if __name__ == '__main__':
    stack = Stack()
    print(stack.is_empty())
    stack.push(2)  # 入栈
    stack.push(3)  # 入栈
    print(stack.size())
    print(stack.peek())
    stack.pop()  # 出栈
    print(stack.size())

运行结果

代码语言:javascript
复制
True
2
3
1
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是栈(Stack)
  • python 实现栈(Stack)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档