1.栈Stack
2.Stack操作样例
3.Stack的两端对应list设置
4.实现:尾端作为栈顶,插入或删除,其push/pop的时间复杂度为O(1)
class Stack:
def _init_(self):
self.items=[]
def isEmpty(self):
return self.items==[]
def push(self,item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
s=Stack()
s._init_()
print(s.isEmpty())
s.push(4)
s.push('dog')
print(s.peek())
s.push(False)
print(s.size())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())
True
dog
3
8.4
False
2
3.另一个实现:首端作为栈底进行删增,其push/pop的时间复杂度为O(n)
class Stack(object):
def _init_(self):
self.items=[]
def isEmpty(self):
return self.items==[]
def push(self,item):
self.items.insert(0,item)
def pop(self):
return self.items.pop(0)
def peek(self):
return self.items[0]
def size(self):
return len(self.items)