美文网首页Python杂文小品
用python实现ADT Stack栈的算法

用python实现ADT Stack栈的算法

作者: 金融测试民工 | 来源:发表于2020-03-21 16:54 被阅读0次

        栈作为一种数据结构,是一种只能在一端进行插入和删除操作。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(即最后一个数据被第一个读出来)

    抽象数据类型“栈”定义为如下操作:

    stack():创建一个空栈,不包含任何数据项

    push(item):入栈

    pop():从栈顶将数据项移除,并返回

    peek():返回栈顶的数据项但不移除,栈不被修改

    isEmpty():返回栈是否为空

    size():返回栈中有多少个数据项

        python是面向对象机制,可以用来实现用户自定义类型,将ADT Stack实现为python的一个class,栈的操作实现为class的方法。由于Stack是一个数据集,我们选用list来实现。

        可以将list的任意一端(index=0或-1)设置为栈顶。但要用list的末端(index=-1)作为栈顶,对栈的操作可以通过list的append和pop来实现,很简单!

    栈的实现

    class stack:

        def __init__(self):

            self.items=[]        #栈初始化

        def peek(self):          #获取栈顶的元素

            return self.items[len(items)-1]

        def push(self,items):        #添加到栈中

            self.items.append(items)

        def pop(self):          #出栈

            return self.items.pop()

        def isEmpty(self):

            return self.items == []

        def size(self):

            return len(self.items)

    这种实现方法,入栈和出栈复杂度都是O(1)。

    相关文章

      网友评论

        本文标题:用python实现ADT Stack栈的算法

        本文链接:https://www.haomeiwen.com/subject/vkzyyhtx.html