1.如何设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要及时反馈到用户
2.排队系统不仅要实现队列的常见的入队和出队功能,而且还要实现队列的中任意的一个元素都可以随时出队列,且出队列需要更新队列用户位置的变化。
3.代码如下:

from collections import dequeclass User:def __init__(self,id,name):#唯一标识一个用户self.id = idself.name = nameself.seq = 0def getName(self):return self.namedef setName(self,name):self.name = namedef getSeq(self):return self.seqdef setSeq(self,seq):self.seq = seqdef getID(self):return self.iddef equals(self,args0):o = args0return self.id == o.getId()def toString(self):return f"id:{self.id} name:{self.name} seq:{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 = 1for u in self.q:u.setSeq(i)i += 1#打印队列信息def printList(self):for u in self.q:print(u.toString())if __name__ == '__main__':u1 = User(1,'user1')u2 = User(2,'user2')u3 = User(3,'user3')u4 = User(4,'user4')u5 = User(5,'user5')queue = MyQueue()queue.enQueue(u1)queue.enQueue(u2)queue.enQueue(u3)queue.enQueue(u4)queue.enQueue(u5)queue.printList()print("**************************************")queue.deQueue()queue.deQueuemove(u3)queue.printList()结果:
id:1 name:user1 seq:1
id:2 name:user2 seq:2
id:3 name:user3 seq:3
id:4 name:user4 seq:4
id:5 name:user5 seq:5
**************************************
id:2 name:user2 seq:1
id:4 name:user4 seq:2
id:5 name:user5 seq:3Process finished with exit code 0

python如何设计一个排队系统相关推荐

  1. Java数据结构与算法-----如何设计一个排队系统

    1.问题 设计一个排队系统,能够让每个进入队的用户都能看到自己在队列中所处的位置和变化.队列可能随时有人加入和退出,当有人退出时影响到用户的位置需要及时的反馈到用户. 2.问题分析: 不仅要实现队列常 ...

  2. 设计一个秒杀系统-秒杀方案分析

    学习使用,老鸟飞过,欢迎交流 秒杀系统应该考虑哪些因素 高可用:秒杀系统最大的特点就是并发高,在极短的时间内, 瞬间用户量大.试想一下双11的时候可能会有几十万的用户去访问同一个商品详情页面秒杀同一个 ...

  3. Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

  4. 阿里最后一面,高并发下如何设计一个秒杀系统?

    近年来,随着"双十一"购物节和抖音等直播平台带货的热潮,大批促销活动涌现,「秒杀」这个词也越来越频繁地出现在我们的生活里. 除了那些头部的电商公司,某宝.某东,还有各种街.某说.某 ...

  5. 如何设计一个权限系统

    本文来说下如何设计一个权限系统 文章目录 概述 权限模型 RBAC0模型 RBAC1模型 RBAC2模型 RBAC3模型 用户组 组织 职位 含有组织/职位/用户组的模型 授权流程 表结构 权限框架 ...

  6. 大厂最后一面,如何设计一个秒杀系统

    近年来,随着"双十一"购物节和抖音等直播平台带货的热潮,大批促销活动涌现,「秒杀」这个词也越来越频繁地出现在我们的生活里. 除了那些头部的电商公司,某宝.某东,还有各种街.某说.某 ...

  7. c语言编程银行排队系统,C语言_课程设计银行排队系统.doc

    C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...

  8. 极客时间-如何设计一个秒杀系统-笔记0到2章

    极客时间-如何设计一个秒杀系统-笔记0到2章 0.开篇词-系统秒杀系统架构设计都有哪些关键点? 1.设计秒杀系统时应该注意的5个架构原则 1.数据要尽量少 2.请求数要尽量少 3.路径要尽量少 4.依 ...

  9. 面试官:如何设计一个 订单系统?

    大家好,我是田哥,昨天有个朋友去面试,被问到订单系统如何设计,主要是因为他简历上有个电商相关的项目.幸好这位兄弟一开始有所准备,不然这场面试估计就凉了. <Java 面试辅导>来啦!田哥和 ...

  10. 用c语言设计一个年历系统流程图,用C语言编写一个年历.docx

    黑龙江八一农垦大学理学院 <C 程序设计>课程设计报告 2011-2012 学年第二学期 设计题目: 指导教师: 用 C 语言设计一个年历系统 魏老师 完成时间:2012 年 6 月 13 ...

最新文章

  1. [UE4]判断2个向量是否相等
  2. Spring Cloud Alibaba 2021.0.1.0 发布:版本号再也不迷糊了
  3. centos8共享文件夹挂载_MacOS自动挂载nfs服务器共享目录
  4. arcgis 出图背景_ArcGIS中导出数据时老显示导出失败,显示“保存对象时出错”什么原因?...
  5. CodeForces 258D Little Elephant and Broken Sorting(期望)
  6. 第二十二期:New一个对象的时候发生了什么?
  7. PHP5时间相差八小时问题[三种方法]
  8. eclipse中git的配置、提交代码、从远程导入代码
  9. linux桌面版如何添加新网络,ubuntu网络配置(桌面版和服务器版)
  10. 判断用户 小程序_小程序对于用户的作用有哪些
  11. Linux下高效实用的grep命令
  12. cmake解决opencv编译下载失败的方法
  13. JavaScript:实现NQueen皇后问题算法(附完整源码)
  14. python 直线方程,两点直线方程的返回方法
  15. 丽台显卡测试软件,丽台Quadro FX4600专业显卡试用评测
  16. 2-软件生命周期模型
  17. 计算机网络学习笔记 01(更新)
  18. 职高学计算机可以考的大学名单,职高可以考的大学有哪些
  19. 我想做个读APPLE手机SN码的程序。
  20. 程序员也要学英语——倒装、强调和省略

热门文章

  1. 三维全景展示的特点 北京同创蓝天的专业性如何
  2. 高通QCC5100系列蓝牙音频模块芯片
  3. 【Python】使用torrentParser1.03对单文件torrent的分析结果
  4. 使用RedRocket方便的查看证券数据
  5. 漂亮的聊天软件网页HTML5模板源码下载
  6. 关于 nth-child(n)的几种写法。
  7. solidworks 显示设计库图标
  8. 世界有色金属杂志世界有色金属杂志社世界有色金属编辑部2022年第4期目录
  9. Python个人总结(基础+进阶)
  10. 计算机刊物SCI影响因子排名