python实现栈和队列

这次我们来模拟栈和队列,这里为什么用的是模拟而不是实现的?因为python的list对象事实上已经足够我们对于

栈和队列的使用需求,append,insert,pop三个函数足够我们的使用,所以这次我们只是来娱乐一下,模拟看看。

栈的定义:输出受限的线性数据结构,通俗点就是底部不允许出来,只能后进先出

于是我们用一个Stack类来实现

class Stack(obkect):
    def __init__(self):
        self.items=[]

这样就定义了一个栈,现在我们来回忆一下栈有哪些方法?

push,pop,size,isempty,暂时能想到的就是这些了,怼了,还有读栈顶元素的peek

isempty只需要使用len(item)就可以实现了,同理,size也是同样方法

peek可以使用item[-1]来实现,push就用append来实现,pop可以直接拿来用,这里只要不给Stack类的pop方法

传入数据就屏蔽pop(2)这样的方法,实现限制运算的目的

设计好了就可以来实现我们的Stack了

class Stack(obkect):
    def __init__(self):
        self.items=[]

    def isempty(self):
        return len(self.items)==0

    def push(self,item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

    def peek(self):
        return self.items[-1]

下面是队列

class Queue:
    def __init__(self):
        self.items=[]

入队,出队,判空等操作

可以使用insert,pop来实现

class Queue:
    def __init__(self):
        self.items=[]

    def isempty(self):
        return len(items)==0

    def enqueue(self,item):
        self.items.insert(0,item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

猜你喜欢

转载自blog.csdn.net/wzngzaixiaomantou/article/details/81388519