zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Python中的sorted函数以及operator.itemgetter函数
    a=a+(a++);b=b+(++b);计算顺序,反汇编
    带基虚类的构造函数执行顺序
    开源系统管理资源大合辑
    linux的LNMP架构介绍、MySQL安装、PHP安装
    lamp下mysql安全加固
    ITSS相关的名词解释
    从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
    Linux 文件系统概览
    Exchange2010批量删除邮件
  • 原文地址:https://www.cnblogs.com/Jesee/p/13070681.html
Copyright © 2011-2022 走看看