• python实现栈的基本操作


    1.栈:一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。

    特性栈:后进先出(LILO)特殊线性表
    栈功能:将数据从一种序列改变为另一种序列

    2.顺序栈和顺序表数据成员相同,不同之处:顺序栈的入栈和出栈操作只允许对当前栈顶进行操作

    顺序栈所有的的操作时间复杂度为O(1)
    注意:面试中如果需要用到栈,封装静态栈。

    3.栈结构实现
    栈可以用顺序表实现,也可以用链表实现。

    4.栈的操作
    Stack() 创建一个新的空栈
    push(item) 添加一个新的元素item到栈顶
    pop() 弹出栈顶元素
    peek() 返回栈顶元素
    is_empty() 判断栈是否为空
    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[len(self.items)-1]
    
      def size(self):
      """返回栈的大小"""
        return len(self.items)
    
    if __name__ == "__main__":
    stack = Stack()
    stack.push("hello")
    stack.push("world")
    stack.push("itcast")
    print stack.size()
    print stack.peek()
    print stack.pop()
    print stack.pop()
    print stack.pop()
  • 相关阅读:
    CentOS 7系统安装nginx+php
    LINUX VSFTP配置及安装
    linux的mount(挂载)命令详解
    nginx和tomcat的区别
    Linux上安装mysql5.7
    初学Java 二维数组找出最近的两个点
    初学Java 数组统计字母
    Struts2中获取Web元素request、session、application对象的四种方式
    jsp自定义标签
    自定义el函数
  • 原文地址:https://www.cnblogs.com/Jesee/p/13070681.html
Copyright © 2020-2023  润新知