📅  最后修改于: 2023-12-03 15:08:08.838000             🧑  作者: Mango
堆栈和队列都是常见的数据结构,它们都是线性结构,但是各自有着不同的特点。
堆栈是一种后进先出(Last In First Out,LIFO)的数据结构,即最后一个入栈的元素最先出栈。堆栈通常用于处理具有树形结构的算法,如深度优先遍历等。堆栈有两个基本操作:push(将元素入栈)和pop(将元素出栈)。
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return len(self.items) == 0
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
队列是一种先进先出(First In First Out,FIFO)的数据结构,即先入列的元素先出列。队列通常用于解决与时间有关的问题,例如按顺序处理某些事件等。队列有两个基本操作:enqueue(将元素入列)和dequeue(将元素出列)。
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
return self.items.pop(0)
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
堆栈和队列都是常见的数据结构,它们都是线性结构,但是各自有着不同的特点。堆栈是后进先出,只允许从顶部进行操作;而队列是先进先出,只允许从队尾进行插入操作。在实际应用中,程序员需要根据实际情况选择合适的数据结构来解决问题。