简介:栈和队列是两种常见的数据结构,具有不同的操作特性和应用场景。本文将通过实例和代码解释栈和队列的基本概念,以及它们之间的主要区别。
栈和队列是两种基本的数据结构,它们在计算机科学中被广泛使用。虽然它们都存储元素,但是它们在添加、删除元素时的操作方式有所不同。下面我们将详细介绍这两种数据结构,并通过代码实例来帮助理解。
一、栈(Stack)
栈是一种后进先出(LIFO)的数据结构,这意味着最后一个进入栈的元素将是第一个出来的元素。在现实生活中,想象一个叠放的盘子堆,你只能从顶部取出盘子(最后一个放上去的),不能从底部取出。
在计算机中,我们使用数组或链表来实现栈。下面是一个使用Python实现的简单栈:
class Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()else:return Nonedef peek(self):if not self.is_empty():return self.stack[-1]else:return Nonedef is_empty(self):return len(self.stack) == 0
二、队列(Queue)
队列是一种先进先出(FIFO)的数据结构,意味着第一个进入队列的元素将是第一个出来的元素。你可以把它想象成排队等候的人,先来的人先得到服务。
在计算机中,我们通常使用数组来实现队列。以下是一个简单的队列实现:
```python
class Queue:
def init(self):
self.queue = []
def enqueue(self, item):self.queue.append(item)def dequeue(self):if not self.is_empty():return self.queue.pop(0)else:return Nonedef peek(self):if not self.is_empty():return self.queue[0]else:return Nonedef is_empty(self):return len(self.queue) == 0