#栈 先进后出classStack():def__init__(self):#初始化一个空列表(就是一个栈)
self.list=[]defis_empty(self):#判断栈是否为空return self.list==[]defpush(self, data):#在栈顶添加元素"""
self.list.append(data)defpop(self):#弹出顶部元素"""return self.list.pop()defpeek(self):#返回栈顶元素"""# 先判断是否为空if self.is_empty():returnelse:return self.list[-1]defsize(self):#判断长度"""returnlen(self.list)deftravel(self):#遍历所有元素"""if self.list!=[]:for i in self.list:print(i)else:print([])
冒泡排序
#冒泡排序defbubbleSort(arr):
n =len(arr)# 遍历所有数组元素for i inrange(n):for j inrange(0, n - i -1):#n-i-1 因为前面已经交换一次了 所以前面那个不用再交换了if arr[j]> arr[j +1]:#如果左面的比右面的大 就换位置
arr[j], arr[j +1]= arr[j +1], arr[j]
arr =[64,34,25,12,22,11,90]
bubbleSort(arr)print("排序后的数组:")print(arr)
队列
classQueue:def__init__(self):
self.list=[]defenqueue(self, data):"""往队列头中添加一个新元素"""
self.list.insert(0, data)deftravel(self):"""遍历所有元素"""iflist!=[]:for i in self.list:print(i)else:print('没了')defdequeue(self):"""从队列尾删除一个元素"""
self.list.pop()defis_empty(self):"""判断队列是否为空"""return self.list==[]defsize(self):"""返回队列的元素个数"""returnlen(self.list)