zoukankan      html  css  js  c++  java
  • 数据结构与算法

    后进先出的有序集合,这种原则叫LIFO。

    栈是有序的 LIFO 。栈操作如下:

    • Stack() 创建一个空的新栈。 它不需要参数,并返回一个空栈。
    • push(item)将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
    • pop() 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
    • peek() 从栈返回顶部项,但不会删除它。不需要参数。 不修改栈。
    • isEmpty() 测试栈是否为空。不需要参数,并返回布尔值。
    • size() 返回栈中的 item 数量。不需要参数,并返回一个整数。

    栈的实现

    在 Python 中,与任何面向对象编程语言一样,抽象数据类型(如栈)的选择的实现是创建一个新类

    栈操作实现为类的方法。此外,为了实现作为元素集合的栈,使用由 Python 提供的原语集合的能力是有意义的。 我们将使用列表作为底层实现。

    列表的结尾将保存栈的顶部元素。列表的结尾将保存栈的顶部元素。

    class Stack:
         def __init__(self):
             self.items = []
    
         def isEmpty(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)
    

    pythonds 模块包含本书中讨论的所有数据结构的实现。它根据以下部分构造:基本数据类型,树和图。 该模块可以从 pythonworks.org下载。

     1 from pythonds.basic.stack import Stack
     2 
     3 s=Stack()
     4 
     5 print(s.isEmpty())
     6 s.push(4)
     7 s.push('dog')
     8 print(s.peek())
     9 s.push(True)
    10 print(s.size())
    11 print(s.isEmpty())
    12 s.push(8.4)
    13 print(s.pop())
    14 print(s.pop())
    15 print(s.size())

    队列

    先进先出,FIFO

    队列抽象数据类型由以下结构和操作定义。如上所述,队列被构造为在队尾添加项的有序集合,并且从队首移除。队列保持 FIFO 排序属性。 队列操作如下。

    • Queue() 创建一个空的新队列。 它不需要参数,并返回一个空队列。
    • enqueue(item) 将新项添加到队尾。 它需要 item 作为参数,并不返回任何内容。
    • dequeue() 从队首移除项。它不需要参数并返回 item。 队列被修改。
    • isEmpty() 查看队列是否为空。它不需要参数,并返回布尔值。
    • size() 返回队列中的项数。它不需要参数,并返回一个整数。
  • 相关阅读:
    不删除数据库,只删除GridView的某一行!
    纯CSS无图打造圆角Table 无图制作圆角
    2009年总结与2010总体计划
    工作中的碰到的问题,以及处理过程:
    SQL Server 2005 不允许远程连接解决方法
    Visual Studio 2008项目模板丢失的解决办法
    C#格式化数值结果表
    准备把csdn的博客搬到这里
    生产系统中 RAC 数据库服务器 不要批量 gzip压缩
    不再更新的业务统计表
  • 原文地址:https://www.cnblogs.com/pacino12134/p/10726322.html
Copyright © 2011-2022 走看看