数据结构
数据结构可分为三种结构:线性结构(一对一)、树结构(一对多)、图结构(多对多)
数组与列表
相信大家应该知道Python中有列表这种数据结构,而其它语言中基本上都有数组这种数据结构。列表与数组有什么区别呢?主要区别是:列表中的数据类型可不同,其长度是可改变的;而数组要求每个元素的数据类型相同,其长度是固定的。为什么会造成这样的不同?这是由于它们的存储方式不同。在数组中,每个元素存放的是真实的值,而且必须要声明其长度,以方便开辟空间;而列表,每个元素存放的是内存地址,此地址指向的是具体的值,此值可不同的数据类型。而且如果列表占用的空间超过范围,Python会复制此列表到另外一个更大的空间,所以其长度可变的。
栈与队列
栈
什么是栈?栈是一种数据集合,只能在一端进行插入或删除操作,它就像以上的那一堆书,后进先出。基本操作有进栈(li.append)、出栈(li.pop)、取栈顶(li[-1]),可在列表中实现。
可用于栈实现判断括号是否匹配
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | def brace_match(s): stack = [] match = { ')' : '(' , ']' : '[' , '}' : '{' } match2 = { '(' : ')' , '[' : ']' , '{' : '}' } for ch in s: # 如果是左括号添加到栈里 if ch in [ '(' , '[' , '{' ]: stack.append(ch) # 如果栈为空,则表明缺少左括号 elif len (stack) = = 0 : print ( '缺少%s' % match[ch]) return False # 如果括号匹配,则清空此括号 elif stack[ - 1 ] = = match[ch]: stack.pop() # 括号不匹配 else : print ( '括号不匹配' ) return False # 栈不为空,表明缺少右括号 if len (stack) > 0 : print ( '缺少%s' % match2[stack[ - 1 ]]) return False print ( '括号匹配成功' ) return True |
队列
队列也是一个数据集合,公允许在列表的一端进行插入,另一端进行删除。进行插入的一端称为队尾,插入动作称为进队或入队;进行删除的一端称为队头,删除动作称为出队。其性质:先进先出。
双向队列:队列的两端都允许进行进阶和出队操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2019-06-26 Mysql