Python 使用列表实现基础数据结构:队列与堆栈

Cora
Cora
发布时间:2026-10-13 | 4人浏览过
原创

本文详解如何使用 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 实现数据结构中堆栈和队列的操作方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!若觉得本文有用,欢迎转载,请注明出处,谢谢!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表