当前位置: 首页 > wzjs >正文

机关单位不得建设网站做业精灵官方网站

机关单位不得建设网站,做业精灵官方网站,有没有可以免费做试卷的网站_最好可以学会...,电商网站开发流程文档一、队列 1.1、概念 队列(Queue):也是一种基本的数据结构,在队列中的插入和删除都遵循先进先出(First in First out,FIFO)的原则。元素可以在任何时刻从队尾插入,但是只有在队列最前面 的元素才能被取出或…

一、队列

1.1、概念 

        队列(Queue):也是一种基本的数据结构,在队列中的插入和删除都遵循先进先出(First in First out,FIFO)的原则。元素可以在任何时刻从队尾插入,但是只有在队列最前面 的元素才能被取出或者删除。通常将队列中允许插入的一端称为队尾,将允许删除的一 端称为队头。队列不允许在中间部位进行操作! 

1.2、操作

栈使用两种基本操作:入队(push) 和 出队(pop):

  • 入队:将数据放入队尾
  • 出队:将队首数据移除

 1.3、特点

1.先入先出(FIFO, First In FirstOut),后入后出(LILO, Last In Last Out)

2.除头尾节点之外,每个元素有一个前驱,一个后继

1.4、队列常用操作 

方法名描述时间复杂度
push( )元素入队,即将元素添加至队尾$O(1)$
pop( )队首元素出队$O(1)$
top( )访问队首元素$O(1)$

python中有现成的队列类queue.Queue 

二、顺序队列

2.1、初始化

    def __init__(self):  """初始化一个空队列,使用列表作为存储容器。"""  self.list = []  # 使用列表存储队列元素  

2.2、入队

    def put(self, data):  """将数据放入队列末尾。  Args:  data: 要放入队列的数据。  """  self.list.append(data)  # 使用列表的 append 方法将数据添加到队列末尾  

2.3、出队

    def get(self):  """从队列头部取出数据。  Returns:  从队列中取出的数据。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法取出数据。")  # 打印提示信息  return None  # 返回 None,指示无法取出数据  return self.list.pop(0)  # 从列表头部弹出数据,遵循 FIFO 原则  

2.4、获取队长度

    def size(self):  """返回队列中元素的数量。  Returns:  队列中元素的数量。  """  return len(self.list)  # 使用 len 函数返回列表的长度  

2.5、判断是否为空

    def is_empty(self):  """检查队列是否为空。  Returns:  如果队列为空返回 True,否则返回 False。  """  return self.list == []  # 检查列表是否为空  

2.6、完整代码 

class Queue:  def __init__(self):  """初始化一个空队列,使用列表作为存储容器。"""  self.list = []  # 使用列表存储队列元素  def is_empty(self):  """检查队列是否为空。  Returns:  如果队列为空返回 True,否则返回 False。  """  return self.list == []  # 检查列表是否为空  def put(self, data):  """将数据放入队列末尾。  Args:  data: 要放入队列的数据。  """  self.list.append(data)  # 使用列表的 append 方法将数据添加到队列末尾  def get(self):  """从队列头部取出数据。  Returns:  从队列中取出的数据。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法取出数据。")  # 打印提示信息  return None  # 返回 None,指示无法取出数据  return self.list.pop(0)  # 从列表头部弹出数据,遵循 FIFO 原则  def size(self):  """返回队列中元素的数量。  Returns:  队列中元素的数量。  """  return len(self.list)  # 使用 len 函数返回列表的长度  if __name__ == '__main__':  q = Queue()  # 创建一个队列实例  q.put(10)    # 将 10 放入队列  q.put(20)    # 将 20 放入队列  q.put(30)    # 将 30 放入队列  q.put(40)    # 将 40 放入队列  print(q.get())  # 从队列中取出并打印第一个元素(10)  print(q.size())  # 打印队列当前的大小(3)

三、链队列

3.1、初始化

class Node:  def __init__(self, data):  """初始化节点,包含数据和指向下一个节点的指针。  Args:  data: 节点存储的数据。  """  self.data = data  # 节点数据  self.next = None  # 初始时,节点的 next 指向 None  
    def __init__(self):"""初始化一个空队列,使用头节点作为哨兵。"""self.head = Node(0)  # 哨兵节点,方便操作

3.2、入队

    def put(self, data):"""将数据放入队列末尾。Args:data: 要放入队列的数据。"""new_node = Node(data)  # 创建新节点current = self.head.next  # 从第一个有效节点开始if current is None:self.head.next = new_node  # 如果队列为空,直接将新节点作为队头else:# 遍历到队列的末尾while current.next is not None:current = current.nextcurrent.next = new_node  # 将新节点添加到队列末尾

3.3、出队

    def get(self):"""从队列头部取出数据。如果队列为空,打印提示信息。Returns:从队列中取出的数据。"""if self.is_empty():  # 检查队列是否为空print("队列为空,无法取出数据。")  # 打印提示信息return None  # 返回 None,指示无法取出数据current = self.head.next  # 获取队列头部元素self.head.next = current.next  # 移动头指针到下一个节点return current.data  # 返回取出的数据

3.4、获取队长度

    def size(self):"""返回队列中元素的数量。Returns:队列中元素的数量。"""count = 0current = self.head.next  # 从第一个有效节点开始while current is not None:count += 1current = current.next  # 移动到下一个节点return count  # 返回计数

3.5、判断是否为空

    def is_empty(self):"""检查队列是否为空。Returns:如果队列为空返回 True,否则返回 False。"""return self.head.next is None  # 如果头节点的 next 为 None,队列为空

3.6、完整代码 

class Node:def __init__(self, data):"""初始化节点,包含数据和指向下一个节点的指针。Args:data: 节点存储的数据。"""self.data = data  # 节点数据self.next = None  # 初始时,节点的 next 指向 Noneclass QueueLink:def __init__(self):"""初始化一个空队列,使用头节点作为哨兵。"""self.head = Node(0)  # 哨兵节点,方便操作def is_empty(self):"""检查队列是否为空。Returns:如果队列为空返回 True,否则返回 False。"""return self.head.next is None  # 如果头节点的 next 为 None,队列为空def put(self, data):"""将数据放入队列末尾。Args:data: 要放入队列的数据。"""new_node = Node(data)  # 创建新节点current = self.head.next  # 从第一个有效节点开始if current is None:self.head.next = new_node  # 如果队列为空,直接将新节点作为队头else:# 遍历到队列的末尾while current.next is not None:current = current.nextcurrent.next = new_node  # 将新节点添加到队列末尾def get(self):"""从队列头部取出数据。如果队列为空,打印提示信息。Returns:从队列中取出的数据。"""if self.is_empty():  # 检查队列是否为空print("队列为空,无法取出数据。")  # 打印提示信息return None  # 返回 None,指示无法取出数据current = self.head.next  # 获取队列头部元素self.head.next = current.next  # 移动头指针到下一个节点return current.data  # 返回取出的数据def size(self):"""返回队列中元素的数量。Returns:队列中元素的数量。"""count = 0current = self.head.next  # 从第一个有效节点开始while current is not None:count += 1current = current.next  # 移动到下一个节点return count  # 返回计数if __name__ == '__main__':q = QueueLink()  # 创建一个队列实例q.put(10)  # 将 10 放入队列q.put(20)  # 将 20 放入队列q.put(30)  # 将 30 放入队列q.put(40)  # 将 40 放入队列print(q.get())  # 从队列中取出并打印第一个元素(10)print(q.size())  # 打印队列当前的大小(3)

四、双端队列

4.1、初始化

    def __init__(self):  """初始化一个空双端队列,使用列表作为存储容器。"""  self.list = []  # 使用列表来存储双端队列的元素  

4.2、队列前端添加元素

    def add_front(self, data):  """在队列前端添加元素。  Args:  data: 要添加到队列前端的数据。  """  self.list.insert(0, data)  # 使用 insert 方法在列表的开头插入新元素  

4.3、队列后端添加元素

    def add_rear(self, data):  """在队列后端添加元素。  Args:  data: 要添加到队列后端的数据。  """  self.list.append(data)  # 使用 append 方法在列表的末尾添加新元素  

4.4、队列前端移除元素

    def remove_front(self):  """从队列前端移除并返回元素。  Returns:  被移除的元素,如果队列为空,则会引发异常。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法从前端移除数据。")  return None  # 如果为空,返回 None  return self.list.pop(0)  # 从列表的开头移除并返回元素  

4.5、队列后端移除元素

    def remove_rear(self):  """从队列后端移除并返回元素。  Returns:  被移除的元素,如果队列为空,则会引发异常。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法从后端移除数据。")  return None  # 如果为空,返回 None  return self.list.pop()  # 从列表的末尾移除并返回元素  

4.6、判断是否为空

    def is_empty(self):  """检查队列是否为空。  Returns:  如果队列为空返回 True,否则返回 False。  """  return self.list == []  # 检查列表是否为空  

4.7、获取队长度

    def size(self):  """返回队列中元素的数量。  Returns:  队列中元素的数量。  """  return len(self.list)  # 返回列表的长度  

4.8、完整代码

class Deque:  def __init__(self):  """初始化一个空双端队列,使用列表作为存储容器。"""  self.list = []  # 使用列表来存储双端队列的元素  def add_front(self, data):  """在队列前端添加元素。  Args:  data: 要添加到队列前端的数据。  """  self.list.insert(0, data)  # 使用 insert 方法在列表的开头插入新元素  def add_rear(self, data):  """在队列后端添加元素。  Args:  data: 要添加到队列后端的数据。  """  self.list.append(data)  # 使用 append 方法在列表的末尾添加新元素  def remove_front(self):  """从队列前端移除并返回元素。  Returns:  被移除的元素,如果队列为空,则会引发异常。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法从前端移除数据。")  return None  # 如果为空,返回 None  return self.list.pop(0)  # 从列表的开头移除并返回元素  def remove_rear(self):  """从队列后端移除并返回元素。  Returns:  被移除的元素,如果队列为空,则会引发异常。  """  if self.is_empty():  # 检查队列是否为空  print("队列为空,无法从后端移除数据。")  return None  # 如果为空,返回 None  return self.list.pop()  # 从列表的末尾移除并返回元素  def is_empty(self):  """检查队列是否为空。  Returns:  如果队列为空返回 True,否则返回 False。  """  return self.list == []  # 检查列表是否为空  def size(self):  """返回队列中元素的数量。  Returns:  队列中元素的数量。  """  return len(self.list)  # 返回列表的长度  if __name__ == '__main__':  dq = Deque()  # 创建一个双端队列实例  dq.add_front(10)  # 在队列前端添加 10  dq.add_front(20)  # 在队列前端添加 20  dq.add_front(30)  # 在队列前端添加 30  dq.add_rear(90)  # 在队列后端添加 90  dq.add_rear(80)  # 在队列后端添加 80  dq.add_rear(70)  # 在队列后端添加 70  print(dq.remove_front())  # 从队列前端移除并打印(30)  print(dq.remove_rear())    # 从队列后端移除并打印(70)  print(dq.size())  # 打印当前队列的大小

五、思维导图


文章转载自:

http://5VyaQtLb.htpjL.cn
http://8LtBgVcp.htpjL.cn
http://EFF8TeQf.htpjL.cn
http://FkpvbP6k.htpjL.cn
http://7BPR3LGd.htpjL.cn
http://f5kjNNGy.htpjL.cn
http://4EUt51F3.htpjL.cn
http://ODG45sRt.htpjL.cn
http://iuZr0Mqn.htpjL.cn
http://qX6vhvbM.htpjL.cn
http://hjoXMG1B.htpjL.cn
http://unrs92tw.htpjL.cn
http://4hdxOTTk.htpjL.cn
http://OxuD8Ehp.htpjL.cn
http://g5UFwiwa.htpjL.cn
http://nWBkb2Kz.htpjL.cn
http://QLhw2evp.htpjL.cn
http://x8WzjEun.htpjL.cn
http://sRySGSMI.htpjL.cn
http://nvjR8jVM.htpjL.cn
http://ItJko2Ee.htpjL.cn
http://giT003CI.htpjL.cn
http://S68ZKX2v.htpjL.cn
http://Zl1zeNvP.htpjL.cn
http://dc4ioFQI.htpjL.cn
http://4Dyp64SF.htpjL.cn
http://1jR2NIJT.htpjL.cn
http://MzH7DhAj.htpjL.cn
http://wT3y95lw.htpjL.cn
http://1R75sxvT.htpjL.cn
http://www.dtcms.com/wzjs/760840.html

相关文章:

  • 西安电商网站建设宁波建设工程学校网站
  • 技术支持保定网站建设 定兴做广告公司网站建设价格
  • 试用型网站韶关公司做网站
  • 企业建网站得多少钱自己搭建vps上外网
  • 智慧旅游网站建设方案ppt模板优品wordpress
  • 大连精美网站制作app 与网站
  • 网站建设费税收分类企业网站建设需要哪些资料信息
  • 高端网站设计公司名单个人网站开发的背景
  • 甘肃精神文明建设网站网络文化有限公司网站建设策划书
  • 深圳市移动端网站建设江苏外贸型网站制作
  • 谷歌网站怎么做推广网站服务器干啥
  • 福建建设执业资格中心网站进入京东商城
  • 淘客做网站的话虚拟主机多大京东内部券网站怎么做
  • 网站建设一定要公司吗七台河新闻头条最新消息
  • 做网站好还是做微信小程序好电商平台推广工具有哪些
  • 做网约车网站燕郊网站建设
  • 给公司做的东西放到私人网站上那些网站可以够买域名
  • 做直播网站找哪个wordpress 常用的钩子
  • 网站建设专业wordpress 会员 下载
  • 什么科技网站建设浦东新区建设局官方网站
  • 酒店电子商务网站策划书毕业设计网站最容易做什莫类型
  • 网站的管理维护wordpress 被黑
  • 苏州建设交通高等职业技术学校网站网页制作模板的网站代码
  • 网站建设 app开发网站做外汇需要了解的网站
  • 网站备案主体 被拉黑制作营销网站
  • 建设一个国外服务器的网站如何制作微信小程序教程
  • 以下属于网站页面设计的原则有网页设计代码看不到图片怎么办
  • php网站开发实例教程第七章中国建筑工程网承包企业管理系统
  • 佛山网站建设案例手机版电脑qq登录入口
  • 自己网站做搜索引擎优化桥梁建设 网站