概要
在计算机科学中,栈(Stack)和队列(Queue)是两种常见的数据结构。它们在算法和数据处理方面有着广泛的应用。本文将详细介绍如何在Python中实现自定义的栈与队列,并包含详细的示例代码,帮助深入理解这两种数据结构的工作原理和使用方法。
栈(Stack)
什么是栈
栈是一种遵循后进先出(LIFO, Last In First Out)原则的线性数据结构。栈的基本操作包括压栈(push)、弹栈(pop)和查看栈顶元素(peek)。
栈的基本操作
-
压栈(push):将元素添加到栈顶。
-
弹栈(pop):从栈顶移除元素。
-
查看栈顶元素(peek):获取栈顶元素但不移除它。
-
检查栈是否为空(is_empty):检查栈是否为空。
-
获取栈的大小(size):获取栈中元素的数量。
实现自定义栈
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise IndexError("pop from empty stack")
return self.items.pop()
def peek(self):
if self.is_empty():
raise IndexError("peek from empty stack")
return self.items[-1]
def size(self):
return len(self.items)
def __str__(self):
return "Stack: " + str(self.items)
# 示例
stack = Stack(