数据结构与算法02(python实现)__栈
栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。
由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
class Stack(object): ''' 栈:用来存取数据的结构,可以用线性表(顺序表或链表)实现 一、保存数据: Stack()创建一个新的空栈(基于顺序表或链表) 二、栈的操作: 1.入栈 push(item) 2.弹栈 pop() 3.返回栈顶元素 peek() 4.is_empty()判断栈是否为空 5.size()返回栈的元素个数 ''' def __init__(self): self.__head = [] # 基于列表(顺序表)实现 def push(self, item): '''入栈,将列表的尾端当做栈顶''' self.__head.append(item) def pop(self): '''弹栈,对应入栈,同样列表的尾端作为栈顶''' return self.__head.pop() def peek(self): '''返回栈顶元素''' return self.__head[-1] def is_empty(self): return len(self.__head) == 0 def size(self): return len(self.__head) if __name__ == '__main__': stack1 = Stack() print(stack1.is_empty()) stack1.push('朋友') stack1.push('爱人') stack1.push('家人') print(stack1.peek()) print(stack1.is_empty()) print(stack1.size()) stack1.pop() print(stack1.peek()) print(stack1.size())
【推荐】国内首个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训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)