1. 时间复杂度(大O表示法)以及使用python实现栈
2024-09-04 02:41:47
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)实现栈:
class Stack(object):
"""栈的实现"""
def __init__(self):
self.__list = [] # 添加一个新元素item到栈顶
def push(self, item):
self.__list.append(item) # 弹出栈顶元素
def pop(self):
return self.__list.pop() # 返回栈顶元素
def peek(self):
if self.__list:
return self.__list[-1]
else:
return None # 判断栈是否为空
def is_empty(self):
return self.__list == [] # 返回栈的元素个数
def size(self):
return len(self.__list) if __name__ == "__main__":
s = Stack()
s.push(1)
s.push(2)
s.push(3)
s.push(4) print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
运行结果:
最新文章
- AEAI ESB培训大纲
- 设置type为file的input标签选择图片类型
- BackTrack 5 开启SSHD服务
- SQL server 2012序列号 注册码 z
- [Hapi.js] Extending the request with lifecycle events
- mediator pattern
- 对[UIApplication sharedApplication]理解
- NumPy快速入门笔记
- poj 2681 字符串
- axios请求本地的json文件在打包部署到子目录域名下,路径找不到
- 01.pandas
- Python第四章(北理国家精品课 嵩天等)
- creator rotationY的问题
- 初学mybatis和mysql碰到的问题
- mongodb管理与安全认证
- MVC分部视图@Html.Partial
- Python安装常见问题:zipimport.ZipImportError: can&#39;t decompress data; zlib not available 解决办法
- 使用NetHogs监控进程网络使用情况
- IAR EWARM 关闭纯汇编函数的警告的方法
- Java导出引用jar包的文件