python数据结构与算法分析 豆瓣,数据结构与算法Python语言实现

  python数据结构与算法分析 豆瓣,数据结构与算法Python语言实现

  本文主要详细介绍Python中的队列。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  

传土豆

  一种典型的排队方法是模拟真实场景,其中数据需要由FIFO管理。考虑这个游戏:传递土豆。在这个游戏中,成员们围成一个圈,依次以最快的速度传递一个土豆。到了某个时刻,所有人都停止了传递,手里拿着土豆的成员不得不退出游戏。重复上述过程,直到只剩下一个成员。

  我们将实现一个土豆游戏的通用模拟程序。该程序接受一个名单和一个常数num进行计数,并返回最后一个人的名字。

  我们用队列来模拟.也就是说,假设拿着土豆的人在队伍的最前面。在模拟土豆传输的过程中,程序将这个人的名字移出队列,然后立即插入到队列的末尾。然后,这个人将等待,直到他再次到达队列的头部。在num时报的出列和排队之后,排在队伍最前面的人出局了,新一轮的游戏开始了。反复,直到队列中只剩下一个名字(即队列的大小为1)。

  班级队列:

  def __init__(self):

  Self.items=[] #建立一个空队列

  def isEmpty(self):

  Return.items==[] #判断是否为空。

  定义排队(自身,项目):

  Self.items.insert(0,item) #在队列末尾(列表的左端)插入一个元素

  定义出列(自身):

  Return.items.pop () #移出队列头的元素(列表的右端)

  定义尺寸(自身):

  Len (self.items) #队列(list)长度

  def look(自身):

  打印(自己的项目)

  def transmitPotato(名称列表,编号):

  Simqueue=Queue() #创建一个队列

  namelist: #中的名称遍历成员名称列表。

  Simqueue.enqueue(name) #成员的名称已排队。

  而simqueue.size() 1: #在队列元素的数量大于1时循环执行

  对于范围内的I(NUM)3360 #循环次数(土豆传递次数)

  #成员姓名从队首转换到队尾

  sim queue . enqueue(sim queue . dequeue())

  #成员的名称已出列(该成员已被清除)

  simqueue.dequeue()

  Return simqueue.dequeue() #返回队列中剩下的最后一个名字。

  调用transmitPotato函数,用7作为计数常量,会得到如下结果:

  请注意,在上面的示例中,count常量大于列表中名称的数量。这不会造成问题,因为队列同时模拟了一个.请注意,当名称列表加载到队列中时,列表中的第一个名称出现在队列的开头。在上面的例子中,小明是列表中的第一个元素,所以他在队列的最前面。

  

总结

  本文到此为止。希望能帮到你,也希望你能多关注更多热门IT软件开发工作室的内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • 留言与评论(共有 条评论)
       
    验证码: