zoukankan      html  css  js  c++  java
  • python3面试题:如何用python实现栈(Stack)的操作? 上海

    前言

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

    什么是栈(Stack)

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

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

    下图是详细的栈结构

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

    python 实现栈(Stack)

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

    • Stack():创建一个空栈,不包含任何数据项
    • push(item):将item加入栈顶,无返回值
    • pop():将栈顶数据项移除,并返回所移除的值,栈被修改
    • peek():“窥视”栈顶数据项,返回栈顶的数据项但不移除,栈不被修改
    • isEmpty():返回栈是否为空栈
    • size():返回栈中有多少个数据项
    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())
    

    运行结果

    True
    2
    3
    1
    
  • 相关阅读:
    disable_irq与disable_irq_nosync使用场景
    linux中断处理原理分析
    工作队列(workqueue) create_workqueue/schedule_work/queue_work
    使用git建立远程仓库,让别人git clone下来
    C中字符串的几种定义方法及说明
    Linux 2.6内核Makefile浅析
    探究platform_driver中的shutdown用途
    匆匆
    至强CPU性能排行,从X3210起,由低至高排列。
    Linux 命令行快捷键
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15587291.html
Copyright © 2011-2022 走看看