【问题描述】自定义队列类,队列元素要么全为整型,要么全为字符串,也可以是空队列。并实现入队、出队操作(入队元素必须与队列中已有元素类型相同,如为空队列,则无此要求)。
【输入形式】见程序。
【输出形式】入队或出队的结果。
【样例说明1】创建队列时,若元素不符合要求,给出以下提示信息。
【样例输出1】All elements must be integer or string.
【样例说明2】若入队列操作成功,则给出以下提示信息,并输出队列内容。
【样例输出2】Success to joined a new element.
[1,2,3,4]
【样例说明3】若出队成功,则输出队列内容。
【样例输出3】 [2, 3, 4]
【样例说明4】待入队的元素若与队列中已有元素类型不相同,给出以下提示信息。
【样例输出4】Cannot be joined. Type Error.
【样例说明5】若队列已为空,则出队操作给出以下提示信息。
【样例输出5】The queue is empty.
class MyQueue:
def isintorstr(self,x):
if isinstance(x,int) or isinstance(x,str):
return True
else:
print('All elements must be integer or string.')
return False
def __init__(self,*a):
a=list(a)
self.queue = []
if len(a) !=0:
if isinstance(a[0], int) or isinstance(a[0],str):
self.queue.append(a[0])
for i in range(1,len(a)):
if isinstance(a[i],int) or isinstance(a[i],str) and isinstance(a[i],type(a[0])):
self.queue.append(a[i])
else:
print('All elements must be integer or string.')
self.queue.clear()
else:
print('All elements must be integer or string.')
def enqueue(self,d):
if len(self.queue) == 0:
if self.isintorstr(d) == True:
self.queue.append(d)
print('Success to joined a new element.')
print(self.queue)
else:
if type(d)!=type(self.queue[0]):
print('Cannot be joined. Type Error.')
else:
self.queue.append(d)
print('Success to joined a new element.')
print(self.queue)
def dequeue(self):
if len(self.queue)==0:
print('The queue is empty.')
else:
del self.queue[0]
print(self.queue)
if __name__ == '__main__':
q1 = MyQueue(8,9,2)
q1.enqueue(7) #入队
q1.dequeue() #出队
q1.enqueue('6')
q2 = MyQueue()
q2.enqueue(2)
q2.dequeue()
q2.dequeue()
q3 = MyQueue(2,3,'5')