您的位置:首页 > 编程语言 > Python开发

python十个queue的排序法

2017-04-05 10:36 281 查看
class Queue:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
#以下是代码部分:
def back_to_main(queue):#将十个Queue里的数据返回main
for i in range(10):
while not queue[i].isEmpty():
queue[10].enqueue(queue[i].dequeue())

queue=[Queue(),Queue(),Queue(),Queue(),Queue(),Queue(),Queue(),Queue(),Queue(),Queue(),Queue()]
list=str(input()).split()
Max=int(list[0])
for x in list:#将数输入queue[10]并找到最大数Max
x=int(x)
if Max<x:
Max=x
queue[10].enqueue(x)
l=len(str(Max))#l为最大数的位数
for i in range(l):#进行l次的排序
while not queue[10].isEmpty():
x=queue[10].dequeue()
queue[(x//10**i)%10].enqueue(x)
back_to_main(queue)

#输出已排好的queue[10]以检查
s=""
while queue[10].size()>1:
s=s+str(queue[10].dequeue())+" "
s=s+str(queue[10].dequeue())
print(s)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: