Python:【问题描述】自定义队列类,队列元素要么全为整型,要么全为字符串,也可以是空队列。并实现入队、出队操作(入队元素必须与队列中已有元素类型相同,如为空队列,则无此要求)。

【问题描述】自定义队列类,队列元素要么全为整型,要么全为字符串,也可以是空队列。并实现入队、出队操作(入队元素必须与队列中已有元素类型相同,如为空队列,则无此要求)。

【输入形式】见程序。
【输出形式】入队或出队的结果。
【样例说明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')        

猜你喜欢

转载自blog.csdn.net/missionnn/article/details/120679515