Python怎么实现栈

  介绍

这篇文章将为大家详细讲解有关Python怎么实现栈,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

使用Python实现栈。
两种实现方式:

<李>

基于数组——数组同时基于链表实现

<李>

基于单链表——单链表的节点时一个实例化的节点对象

<强>完整代码可见GitHub: https://github.com/GYT0313/Python-DataStructure/tree/master/5-stack

<强>目录结构:
 Python怎么实现栈”> <br/>注:一个完整的代码并不是使用一个py文件,而使用了多个文件通过继承方式实现。</p> <h4> 1。超类接口代码</h4> <p> arraycollection。py </p> <pre类=“““   文件:abstractcollection.py   作者:Ken 兰伯特   “““      class  AbstractCollection(对象):   “““才能An  abstract  collection 实现!”““      #,才能构造函数   def 才能;__init__(自我,,sourceCollection =,无):   ,,,“““Sets 从而initial  state  of 自我,which  includes    ,,,contents  of  sourceCollection,, if 这# 39;s 现在!”““   ,,,self._size =0   ,,,if  sourceCollection:   ,,,,,for  item 拷贝sourceCollection:   ,,,,,,,self.add(项)      #,才能Accessor 方法   def 才能isEmpty(自我):   ,,,“““Returns  True  if  len(自我),==,0,,趁机False 否则!”““   ,,,return  len(自我),==0   ,,   def 才能__len__(自我):   ,,,“““Returns 从而number  of  items 自我!”拷贝““   ,,,return  self._size      def 才能__str__(自我):   ,,,“““Returns 从而string  representation  of 自我!”““   ,,,return “(“时间+大敌;,,,,,. join (map (str,,自我)),+,“]”;      def 才能__add__(自我,其他):   ,,,“““Returns  a  new  bag  containing 从而内容   ,,,of  self 以及其他!”““   ,,,result =,类型(自我)(自我)   ,,,for  item 拷贝:   ,,,,,result.add(项)   ,,,return 结果      def 才能__eq__(自我,其他):   ,,,“““Returns  True  if  self  equals 其他,   ,,,趁机False 否则!”““   ,,,if  self  is 其他:return 真正的   ,,,if 类型(自我),!=,类型(其他),或是\   ,,,,,len(自我),!=,len(其他):   ,,,,,return 错误的   ,,,otherIter =, iter(其他)   ,,,for  item 自我:拷贝   ,,,,,if  item  !=,下一个(otherIter):   ,,,,,,,return 错误的   ,,,return 真正的

abstractstack。py

“““   文件:abstractstack.py   作者:Ken 兰伯特   “““      得到abstractcollection  import  AbstractCollection      class  AbstractStack (AbstractCollection):   “““才能An  abstract  stack 实现!”““      #,才能构造函数   def 才能;__init__(自我,,sourceCollection =,无):   ,,,“““Sets 从而initial  state  of 自我,which  includes    ,,,contents  of  sourceCollection,, if 这# 39;s 现在!”““   ,,,AbstractCollection.__init__(自我,,sourceCollection)      #,才能Mutator 方法   def 才能添加(自我,,项):   ,,,“““Adds  item 用自我!”““   ,,,self.push(项)

2。基于数组

<>强运行示例:
 Python怎么实现栈”> <br/> <强>代码:</强> <br/>栈实现:arraystack。py </p> <pre类=“““   文件:abstractstack.py   作者:Ken 兰伯特   “““      得到abstractcollection  import  AbstractCollection      class  AbstractStack (AbstractCollection):   “““才能An  abstract  stack 实现!”““      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python怎么实现栈