这次我们来模拟栈和队列,这里为什么用的是模拟而不是实现的?因为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)