"设计一个排序系统"(python)

题目描述:设计一个排序系统,能够让每个进入队伍的用户都能看的自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。

from collections import deque
class User:

    def __init__(self, id, name):
        self.id = id  # 唯一标识一个用户
        self.name = name
        self.seq = 0

    def getName(self):
        return self.name

    def setName(self, name):
        self.name = name

    def getSeq(self):
        return self.seq

    def setSeq(self, seq):
        self.seq = seq

    def getId(self):
        return self.id

    def equals(self, arg0):
        o = arg0
        return self.id == o.getId()

    def toString(self):
        return "id: "+str(self.id)+" name:"+self.name + " seq:"+str(self.seq)

class MyQueue:
    def __init__(self):
        self.q = deque()

    def enQueue(self, u):  # 进入队列尾部
        u.setSeq(len(self.q)+1)
        self.q.append(u)

    # 队头出队列
    def deQueue(self):
        self.q.popleft()
        self.updateSeq()

    # 队列中的人随机离开
    def deQueuemove(self, u):
        self.q.remove(u)
        self.updateSeq()

    # 出队列后更新队列中每个人的序列
    def updateSeq(self):
        i = 1
        for u in self.q:
            u.setSeq(i)
            i += 1

    # 打印队列中的信息
    def printList(self):
        for u in self.q:
            print(u.toString())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值