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
Dylan

浙公网安备 33010602011771号