[Python] 用list模拟栈和队列
来源:互联网 发布:知乎 收入 安排 编辑:程序博客网 时间:2024/06/10 09:49
栈和队列是数据结构中两个基本的概念,在算法中经常用到。
-栈(stack):只能在一端进行数据操作,遵循后进先出(LIFO)原则
-队列(queue):可以在两端进行数据操作,遵循先进先出(FIFO)原则,出队列的一端称为队首,入队列的一端称为队尾
Python中可以用list来模拟栈和队列
栈的代码实现
class Stack(object): def __init__(self): self.l = [] def empty(self): """ 判断栈是否为空 :return: """ return len(self.l) == 0 def peek(self): """ 查看栈顶的对象,但不移除 :return: """ if not self.empty(): return self.l[-1] return None def pop(self): """ 移除栈顶对象,并返回该对象的值 :return: """ if not self.empty(): return self.l.pop() return None def push(self, obj): """ 把对象压入栈顶 :return: """ self.l.append(obj) def search(self, obj): """ 返回对象在栈中的位置,以1为基数 :param obj: :return: """ if not self.empty(): return self.l.index(obj) + 1 return -1
队列的代码实现
class Queue(object): def __init__(self): self.l = [] def empty(self): """ 判断队列是否为空 :return: """ return len(self.l) == 0 def add(self, obj): """ 将指定元素加入队列的尾部 :param obj: :return: """ self.l.append(obj) def peek(self): """ 查看队首的对象,但不移除 :return: """ if not self.empty(): return self.l[0] return None def poll(self): """ 移除队首对象,并返回该对象的值 :return: """ if not self.empty(): return self.l.pop(0) return None
阅读全文
0 0
- [Python] 用list模拟栈和队列
- Python模拟栈 和 队列
- 用Python中的列表模拟栈和队列
- 队列模拟栈和栈模拟队列
- python 栈和队列(使用list实现)
- java用LinkedList模拟栈和队列
- 黑马程序员 List集合模拟堆栈和队列
- 数组模拟队列和栈
- 链表-模拟栈和队列
- LinkedList模拟栈和队列
- 用堆栈模拟队列,和用队列模拟堆栈
- 用堆栈模拟队列,和用队列模拟堆栈
- Python 栈和队列
- Python用两个list模拟有序字典
- 用List模拟实现STL下的queue队列
- 用栈队列的方式模拟计算机读取和结束
- 用python实现栈和队列
- 集合_用List实现栈和队列
- centos6.5安装 apache
- iis 403.17
- 15.6—细节实现题—Multiply Strings
- 多线程操作UI
- Java虚拟机
- [Python] 用list模拟栈和队列
- Java 集合系列09之 Map架构
- 1004 成绩排名
- 15.7—细节实现题—Substring with Concatenation of All Words
- 算法编程题-字符串互为变形词问题
- 15.8—细节实现题—Pascals Triangle
- H
- 我这一代人
- excel 中根据月份计算季度