Python基于面向对象实现队列、栈的继承

Queue队列 : 先进先出 FIFO(FIRST IN FIRST OUT)

class Queue:
    def __init__(self):
        self.l = []
    def put(self,item):
        self.l.append(item)
    def get(self):
        return self.l.pop(0)
q = Queue()
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())

 栈:后进先出

 

    def __init__(self):
        self.l = []
    def put(self,item):
        self.l.append(item)
    def get(self):
        return self.l.pop()

s1 = Stack()

 队列和栈通过继承关系实现

# 方法一
class Foo:
    def __init__(self):
        self.l = []

    def put(self, item):
        self.l.append(item)


class Queue(Foo):
    def get(self):
        return self.l.pop(0)


class Stack(Foo):
    def get(self):
        return self.l.pop()

 

# 方法二:
class Foo:
    def __init__(self):
        self.l = []

    def put(self,item):
        self.l.append(item)

    def get(self):
        return self.l.pop() if self.index else self.l.pop(0)

class Queue(Foo):
    def __init__(self):
        self.index = 0
        Foo.__init__(self)

class Stack(Foo):
    def __init__(self):
        self.index = 1
        Foo.__init__(self)

 

# 方法三
class Foo:
    def __init__(self):
        self.l = []

    def put(self, item):
        self.l.append(item)

    def get(self):
        return self.l.pop()


class Queue(Foo):
    def get(self):
        return self.l.pop(0)

class Stack(Foo):pass

 

posted @ 2020-03-10 14:38  Dylan123  阅读(214)  评论(0)    收藏  举报