Python 使用列表实现基础数据结构:队列与堆栈
本文详解如何使用 Python 原生列表实现基础的队列和堆栈数据结构。通过定义类及入队、出队、入栈、出栈等方法,直观展示“先进先出”与“先进后出”的核心区别,并提供完整代码示例供参考。
队列与堆栈基础概念
队列、堆栈和链表同属数据结构中最基础的类型,尽管它们存在多种变形与实现方式,但核心特征始终不变。本文将聚焦于最基础且简单的实现方式,深入解析队列与堆栈的原理。
无论队列的形式如何变化,其共同特征均为“先进先出”(FIFO)。可以将其类比为超市结账排队:先到达的人排在队伍前方,并优先完成结账离开。这是队列结构的基本属性。
堆栈则与队列相反,遵循“先进后出”(LIFO)原则。常见的编辑器“撤销”功能(如按 Ctrl+Z)即为此结构的典型应用:第一次按下撤销键时,移除的是最后输入的内容;第二次按下时,移除的是当前编辑器中最后留下的内容。
概念介绍完毕后,我们进入代码实现环节。本文采用最简单的方式——利用 Python 原生数据类型列表(list)来构建这两种数据结构。此前文章曾介绍通过链表实现堆栈和队列,有兴趣的读者也可尝试该方案。
Python 队列实现
队列
首先,我们需要定义一个队列类。
class Queue():
def __init__(self):
self.__list = list()
随后,为该队列类添加具体操作方法。
•判断队列是否为空
def isEmpty(self):
return self.__list == []
•入队操作
def push(self, data):
self.__list.append(data)
•出队操作
def pop(self):
if self.isEmpty():
return False
return self.__list.pop(0)
•定义 len() 函数和 print() 类方法
def __len__(self):
return len(self.__list)
def __str__(self):
if self.isEmpty():
return ''
return ' '.join([str(x) for x in self.__list])
至此,一个最基础的队列实现完成,读者可自行实例化队列进行测试。
接下来,我们探讨堆栈的实现。
Python 堆栈实现
堆栈
堆栈的实现逻辑与队列类似,同样包含入栈和出栈操作,具体代码如下。
class Stack():
def __init__(self):
self.__list = list()
def isEmpty(self):
return self.__list == []
def push(self, data):
self.__list.append(data)
def pop(self):
if self.isEmpty():
return False
return self.__list.pop()
def __len__(self):
return len(self.__list)
def __str__(self):
if self.isEmpty():
return ''
return ' '.join([str(x) for x in self.__list])
对比可见,堆栈与队列的类实现基本一致,主要区别在于出栈与出队时的元素处理:队列弹出的是第一个元素,而堆栈弹出的是最后一个元素。这正是两者最本质的区别。
总结
以上介绍了 Python 实现数据结构中堆栈和队列的操作方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!若觉得本文有用,欢迎转载,请注明出处,谢谢!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









