1.栈(先进后出)
2.队列(先进先出)
#普通队列
class myQuene(object):
def __init__(self,list=[]):
self.__list = list
def size(self):
return len(self.__list)
def delete(self):
if self.size()==0:
print("空队列不能删除")
else:
temp_delete = self.__list[0]
del self.__list[0]
return temp_delete
def insert(self,data):
self.__list.append(data)
def peek(self):
if self.size()==0:
print("空队列不能删除")
else:
return self.__list[0]#返回队头元素
#优先级队列()添加元素
'''
class myQuene(object):
def __init__(self,list=[]):
self.__list = list
def size(self):
return len(self.__list)
def delete(self):
if self.size()==0:
print("空队列不能删除")
else:
temp_delete = self.__list[0]
del self.__list[0]
return temp_delete
def insert(self,data):
if self.size()==0:
self.__list.append(data)#若队列为空,将数据直接插入
else:
temp = -1
for i in range(len(self.__list)):
if self.__list[i]>data:
temp = i
break
if temp == -1:
self.__list.append(data)
else:
self.__list.insert(temp,data)
def peek(self):
if self.size()==0:
print("空队列不能删除")
else:
return self.__list[0]
q = myQuene()
q.insert(1)
q.insert(2)
q.insert(4)
q.insert(3)
print(q.delete())
print(q.delete())
print(q.delete())
print(q.delete())
#循环队列
class xunhuan():
def __init__(self, list=[], first=None, last=None):
self.__list = list
self.__last = last
self.__first = first
def size(self):
length = 0
if self.__last > self.__first:
length = self.__last-self.__first+1
elif self.__last == self.__first and self.__last!=None:
length = 1
elif self.__last == self.__first and self.__last == None:
length = 0
else:
length = len(self.__list)-(self.__first - self.__last-1)
return length
def insert(self,data):
if self.size()==0:
self.__list.append(data)
self.__first = 0
self.__last = 0
else:
if self.size()==len(self.__list):
self.insert(self.__last,data)
self.__last = self.__last+1
else:
if self.__last+1==len(self.__list):
self.__last[0]==data
self.__last = 0
else:
self.__list[self.__last+1]=data
self.__last = self.__last+1
def delete(self):
if self.size() == 0:
print("空队列无法删除")
elif self.size() == 1:
temp = self.__list[self.__first]
self.__first = None
self.__last = None
return temp
else:
temp = self.__list[self.__first]
if self.__first+1==len(self.__list):
self.__first = 0
else:
self.__first = self.__first+1
return temp
def peek(self):
if self.size() == 0:
print("空队列无法查看")
else:
return self.__list[self.__first]
#链表实现队列
‘’’
from test0126 import double_linked
class Quene():
def __init__(self):
self.__dl = double_linked()
def size(self):
return self.__dl.length()
def delete(self):
self.__dl.delete_first()
def insert(self,data):
self.__dl.insert_last(data)
def peek(self):
if self.size()==0:
print("列表已空")
else:
self.__dl.getFirst().get_data()
q = Quene()
print(q.size())