# Stack()创建一个空的新栈。它不需要参数,并返回一个空栈。
class Stack():def __init__(self): # 创建一个空栈self.items = []def push(self, item): # 压栈self.items.append(item)def pop(self): # 出栈return self.items.pop()def peek(self): # 返回栈顶元素下标return len(self.items) - 1def isEmpty(self):#测试栈是否为空return self.items == ''def size(self): #返回栈中的item数量return len(self.items)s = Stack()
s.push(5)
print("压栈第1个元素后,栈的数据:",s.items)
s.push(3)
print("压栈第2个元素后,栈的数据:",s.items)
s.push(0)
print("压栈第3个元素后,栈的数据:",s.items)
print('*'*50)
print("出栈第1个元素后,栈的数据:",s.items,";出现的数值为:",s.pop())
print("出栈第2个元素后,栈的数据:",s.items,";出现的数值为:",s.pop())
print("出栈第3个元素后,栈的数据:",s.items,";出现的数值为:",s.pop())
class Queue():def __init__(self):self.items = []def enqueue(self, item):self.items.append(item)def dequeue(self):return self.items.pop(0)def isEmpty(self):return self.items == ''def size(self):return len(self.items)items = [1, 2, 3, 4, 5]
q1 = Queue()
q2 = Queue()
for item in items:q1.enqueue(item)print("压栈",q1.items)
while True:while q1.size() > 1:item = q1.dequeue()q2.enqueue(item)print("出栈",q1.dequeue())q1, q2 = q2, q1if q1.size() == 0:break
# 创建队列类
class Queue():def __init__(self):self.items=[]def enqueue(self,item): #压栈self.items.append(item)def dequeue(self): # 出栈return self.items.pop(0)def isEmpty(self): #查看队列是否为空。return self.items==''def size(self): #return len(self.items)q=Queue()
q.enqueue(5)
print("压栈第1个元素后,队列的数据:",q.items)
q.enqueue(3)
print("压栈第2个元素后,队列的数据:",q.items)
q.enqueue(0)
print("压栈第3个元素后,队列的数据:",q.items)
print('*' * 50)
print("出栈第1个元素后,队列的数据:", q.items, ";出现的数值为:", q.dequeue())
print("出栈第2个元素后,队列的数据:", q.items, ";出现的数值为:", q.dequeue())
print("出栈第3个元素后,队列的数据:", q.items, ";出现的数值为:", q.dequeue())
class Stack():def __init__(self): # 创建一个空栈self.items = []def push(self, item): # 从栈顶【-1】添加到栈底【0】self.items.append(item)def pop(self): # 从栈顶向栈底取元素return self.items.pop()def peek(self): # 返回栈顶元素下标return len(self.items) - 1def isEmpty(self):return self.items == ''def size(self):return len(self.items)s1=Stack()
s2=Stack()
items=[1,2,3,4,5]
for item in items:s1.push(item)print("压栈", s1.items)
while s1.size()>0:item=s1.pop()s2.push(item)print("出栈", s1.items)
上一篇:Mysql事务隔离级别解读和分析
下一篇:ChatGPT使用