• 1. 时间复杂度(大O表示法)以及使用python实现栈


    1.时间复杂度(大O表示法):

        O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

       

      (1)Python中常用数据结构的时间复杂度:

          list内置操作的时间复杂度:          

            

        dict内置操作的时间复杂度:

          

       (2)抽象数据类型(ADT: Abstract Data Type):

        常用数据运算(5种):

           增(插入)

           删(删除)

           改(修改)

           查(查找)

           排序

     

    2. 栈的实现:

      (1)栈的表现形式:

         

      (2)栈的操作:

        Stack():    创建一个新的空栈

        push(item):添加一个新元素item到栈顶

        pop():    弹出栈顶元素

        peek():   返回栈顶元素

        is_empty(): 判断栈是否为空

        size():     返回栈的元素个数

      (3)实现栈:    

     1 class Stack(object):
     2     """栈的实现"""
     3     def __init__(self):
     4         self.__list = []
     5 
     6     # 添加一个新元素item到栈顶
     7     def push(self, item):
     8         self.__list.append(item)
     9 
    10     # 弹出栈顶元素
    11     def pop(self):
    12         return self.__list.pop()
    13 
    14     # 返回栈顶元素
    15     def peek(self):
    16         if self.__list:
    17             return self.__list[-1]
    18         else:
    19             return None
    20 
    21     # 判断栈是否为空
    22     def is_empty(self):
    23         return self.__list == []
    24 
    25     # 返回栈的元素个数
    26     def size(self):
    27         return len(self.__list)
    28 
    29 
    30 if __name__ == "__main__":
    31     s = Stack()
    32     s.push(1)
    33     s.push(2)
    34     s.push(3)
    35     s.push(4)
    36 
    37     print(s.pop())
    38     print(s.pop())
    39     print(s.pop())
    40     print(s.pop())

          运行结果:

          

    文章写来不易,转载请标注。。。欢迎关注!
  • 相关阅读:
    完美世界经典版本881外挂
    ShowModal 动态创建窗体和释放窗体
    HTML 颜色代码大全
    padding margin border 的四值顺序
    三 C# Socket通信 窗体控件与多线程
    Java解压缩Zip 文件
    八 C# Socket通信 通信协议设计
    CSS+DIV实现鼠标经过背景变色
    七 C# Socket通信 阻塞性线程的快速终止
    二 C# Socket通信模式
  • 原文地址:https://www.cnblogs.com/si-lei/p/9260476.html
Copyright © 2020-2023  润新知