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

使用微信推广的各种方法seo研究协会

使用微信推广的各种方法,seo研究协会,建设赌博网站,安康手机网站建设目录标题 队列的定义顺序队列的实现初始化入队出队顺序队列总代码与调试 循环队列的实现初始化入队出队获取队首元素循环队列总代码与调试 链式队列的实现链式队列的初始化入队出队获取队首元素链式队列总代码与调试 队列的定义 定义:队列(Queue&#x…

目录标题

    • 队列的定义
    • 顺序队列的实现
      • 初始化
      • 入队
      • 出队
      • 顺序队列总代码与调试
    • 循环队列的实现
      • 初始化
      • 入队
      • 出队
      • 获取队首元素
      • 循环队列总代码与调试
    • 链式队列的实现
      • 链式队列的初始化
      • 入队
      • 出队
      • 获取队首元素
      • 链式队列总代码与调试

队列的定义

  • 定义:队列(Queue)是一种常见的数据结构,它遵循“先进先出”(First In First Out,FIFO)的原则。类似于排队买票的情况,排在前面的先离开队列,后面来的排在队尾。
  • 特点:
    • 队列只允许在一端删除,在另一端插入的线性表
    • 允许删除的一端称为队首,允许插入的一端称为队尾
    • 向队列中插入元素称入队,从队列中删除元素称为出队
  • 队列示意图

在这里插入图片描述

顺序队列的实现

初始化

class SeqQueue:"""顺序队列的定义"""def __init__(self, max):"""顺序队列的初始化:param max: 队列大小"""self.max = max# 存储队列元素self.data = [None for i in range(self.max)]# 队首指针self.front = 0# 队尾指针self.rear = 0

入队

  • 核心思想
    • 检查队列是否已满
    • 在队尾插入元素值
    • 队尾指针加1
  • 入队示意图

在这里插入图片描述

  • 代码实现
    def enter(self, data):"""入队:param data: 入队元素:return:"""# 队满情况if self.rear == self.max:raise IndexError('队列已满')# 在队尾插入新的关键字self.data[self.rear] = data# 队尾指针加1self.rear += 1

出队

  • 核心思想
    • 检查队列是否为空
    • 获取队首元素
    • 队首指针front向后移动一格
  • 出队示意图

在这里插入图片描述

  • 代码实现
    def delete(self):"""出队:return: 出队元素"""# 队空if self.front == self.rear:raise IndexError('队空')# 获取出队元素data = self.data[self.front]# 队首指向下一个元素位置self.front += 1return data

顺序队列总代码与调试

# 10.顺序队列
class SeqQueue:"""顺序队列的定义"""def __init__(self, max):"""顺序队列的初始化:param max: 队列大小"""self.max = max# 存储队列元素self.data = [None for i in range(self.max)]# 队首指针self.front = 0# 队尾指针self.rear = 0def enter(self, data):"""入队:param data: 入队元素:return:"""# 队满情况if self.rear == self.max:raise IndexError('队列已满')# 在队尾插入新的关键字self.data[self.rear] = data# 队尾指针加1self.rear += 1def delete(self):"""出队:return: 出队元素"""# 队空if self.front == self.rear:raise IndexError('队空')# 获取出队元素data = self.data[self.front]# 队首指向下一个元素位置self.front += 1return dataif __name__ == '__main__':print('PyCharm')# 10.队列seqQueue = SeqQueue(8)# 10.1入队seqQueue.enter(10)seqQueue.enter(20)seqQueue.enter(30)# 10.2出队data = seqQueue.delete()print('当前出队元素:', data)data = seqQueue.delete()print('当前出队元素:', data)# 入队seqQueue.enter(40)seqQueue.enter(50)seqQueue.enter(60)# 出队data = seqQueue.delete()print('当前出队元素:', data)data = seqQueue.delete()print('当前出队元素:', data)data = seqQueue.delete()print('当前出队元素:', data)

循环队列的实现

  • 顺序队列易出现队列溢出的情况,针对这种情况的解决思路,设计了循环队列的线性表。
  • 顺序队列中存在的假溢出现象

在这里插入图片描述

  • 循环队列的出入队解决情况

在这里插入图片描述

  • 设定
    • 队首取下一个位置为:(front + 1) % max
    • 队尾取下一个位置为:(rear + 1) % max
    • 队空:front == rear
    • 队满:(rear + 1) % max == front

初始化

  • 初始化
class CSeqQueue:"""顺序队列的定义"""def __init__(self, max):"""顺序队列的初始化:param max: 队列大小"""self.max = max# 存储队列元素self.data = [None for i in range(self.max)]# 队首指针self.front = 0# 队尾指针self.rear = 0
  • 是否为空
    def isEmpty(self):"""循环队列是否为空:return: true or false"""return self.front ==self.rear

入队

  • 核心思想
    • 检查队列是否已满
    • 在队尾插入元素值
    • 取队尾的下一个位置
  • 代码实现
    def enter(self, data):"""入队:param data: 入队元素:return:"""# 队列满的情况if(self.rear + 1)% self.max == self.front:raise IndexError('队列已满')# 在队尾插入dataself.data[self.rear] = data# 修改队尾指针self.rear = (self.rear + 1) % self.max

出队

  • 核心思想
    • 检查队列是否为空
    • 获取队首元素
    • 取队首的下一个位置
  • 代码实现
    def delete(self):"""出队:return: 返回队首元素"""# 队空if self.isEmpty():raise IndexError('队列为空')# 获队首元素data = self.data[self.front]# 修改队首指针self.front = (self.front + 1) % self.max#返回return data

获取队首元素

    def peak(self):"""获取队首元素:return: 队首元素"""# 队空if self.isEmpty():raise IndexError('队列为空')# 返回队首元素return self.data[self.front]

循环队列总代码与调试

# 11.循环队列
class CSeqQueue:"""顺序队列的定义"""def __init__(self, max):"""顺序队列的初始化:param max: 队列大小"""self.max = max# 存储队列元素self.data = [None for i in range(self.max)]# 队首指针self.front = 0# 队尾指针self.rear = 0def isEmpty(self):"""循环队列是否为空:return: true or false"""return self.front ==self.reardef enter(self, data):"""入队:param data: 入队元素:return:"""# 队列满的情况if(self.rear + 1)% self.max == self.front:raise IndexError('队列已满')# 在队尾插入dataself.data[self.rear] = data# 修改队尾指针self.rear = (self.rear + 1) % self.maxdef delete(self):"""出队:return: 返回队首元素"""# 队空if self.isEmpty():raise IndexError('队列为空')# 获队首元素data = self.data[self.front]# 修改队首指针self.front = (self.front + 1) % self.max#返回return datadef peak(self):"""获取队首元素:return: 队首元素"""# 队空if self.isEmpty():raise IndexError('队列为空')# 返回队首元素return self.data[self.front]if __name__ == '__main__':print('PyCharm')# 11.循环队列cseqQueue = CSeqQueue(5)# 入队cseqQueue.enter(10)cseqQueue.enter(20)cseqQueue.enter(30)print('输出队首元素:', cseqQueue.peak())# 出队10data = cseqQueue.delete()print('出队的元素:', data)print('队首元素:', cseqQueue.peak())# 出队20data = cseqQueue.delete()print('出队的元素:', data)print('队首元素:', cseqQueue.peak())# 入队cseqQueue.enter(40)cseqQueue.enter(50)cseqQueue.enter(60)print('队首元素:', cseqQueue.peak())

链式队列的实现

  • 结点设置:与单链表一致,包括数据域data与指针域next。
  • 链式队列示意图
    在这里插入图片描述
  • 代码实现
class Node:"""定义链式队列结点"""def __init__(self, data):# 数据域self.data = data# 指针域self.next = None

链式队列的初始化

  • 初始化
    def __init__(self):"""链式队列初始化"""# 队首结点指向Noneself.front = Node(None)# 队尾指针指向队首self.rear = self.front
  • 是否为空
    def isEmpty(self):"""判断是否为空:return: true or false"""return self.front == self.rear

入队

  • 核心思想
    • 队尾的next指针指向新结点
    • 队尾指针指向新结点
  • 入队示意图
    在这里插入图片描述
  • 代码实现
    def enter(self, data):"""入队:param data: 入队元素值"""# 创建新结点newNode = Node(data)self.rear.next = newNodeself.rear = newNode

出队

  • 核心思想
    • 检查队列是否为空
    • 保留队首结点
    • 将队首结点的next指针指向队首结点的后继结点,实现删除
  • 出队示意图
    在这里插入图片描述
  • 代码实现
    def delete(self):"""出队:return: 出队值"""# 队列为空if self.isEmpty():raise IndexError('队列为空')else:node = self.front.next# 队首结点的next指向队首结点的后继结点self.front.next = node.next# 返回出队结点return node

获取队首元素

    def peak(self):"""获取队首元素:return: 队首元素"""# 队列为空if self.isEmpty():raise IndexError('队列为空')else:# 返回队首元素return self.front.next.data

链式队列总代码与调试

# 链式队列
class Node:"""定义链式队列结点"""def __init__(self, data):# 数据域self.data = data# 指针域self.next = Noneclass LinkedQueue:"""链式队列定义"""def __init__(self):"""链式队列初始化"""# 队首结点指向Noneself.front = Node(None)# 队尾指针指向队首self.rear = self.frontdef isEmpty(self):"""判断是否为空:return: true or false"""return self.front == self.reardef enter(self, data):"""入队:param data: 入队元素值"""# 创建新结点newNode = Node(data)self.rear.next = newNodeself.rear = newNodedef delete(self):"""出队:return: 出队值"""# 队列为空if self.isEmpty():raise IndexError('队列为空')else:node = self.front.next# 队首结点的next指向队首结点的后继结点self.front.next = node.next# 返回出队结点return nodedef peak(self):"""获取队首元素:return: 队首元素"""# 队列为空if self.isEmpty():raise IndexError('队列为空')else:# 返回队首元素return self.front.next.dataif __name__ == '__main__':print('PyCharm')# 12.链式队列linkedQueue = LinkedQueue()# 入队linkedQueue.enter('A')linkedQueue.enter('B')linkedQueue.enter('C')print('输出队首元素:', linkedQueue.peak())# 出队node = linkedQueue.delete()print('出队元素:', node.data)node = linkedQueue.delete()print('出队元素:', node.data)print('输出队首元素:', linkedQueue.peak())
http://www.dtcms.com/wzjs/468748.html

相关文章:

  • 钢管公司网站建设宁波seo在线优化方案公司
  • 有什么专业做心理的网站搜索引擎google
  • 网页设计个人网站设计seo职业培训班
  • 从网站自动下载日志信息怎么做app推广引流
  • 网站关键词多少好b站是哪个网站
  • 沧州网站建设培训学校建立网站一般要多少钱
  • 东西湖网站建设成人短期培训能学什么
  • 该网站正在建设中 马上就来夫唯老师seo
  • 国外设计师作品网站兰州seo关键词优化
  • 上海建站 seo页面优化的方法
  • 宜都网站建设网络营销过程步骤
  • 云南建设工程网站百度广告怎么投放多少钱
  • 户外运动网站程序小程序
  • 三雷网站程序新平台推广赚钱
  • 做解密类网站可行广告宣传费用一般多少
  • 制作一个网站的一般步骤seo 工具分析
  • 上一篇 下一篇 wordpress重庆seo扣费
  • 网站推广的四个阶段是指产品推广方法
  • 做视频网站赚钱嘛查询收录
  • wp如何做网站地图线上推广的公司
  • 哪家网络公司做网站网络运营培训班
  • 专业做国际网站品牌营销策略包括哪些内容
  • 建一千个网站做长尾词有效果吗兰州网络推广
  • 校园网站建设考核杭州seo公司哪家好
  • 已认证网站服务费怎么做网站排名优化软件联系方式
  • 新疆生产建设兵团发改委网站阳西网站seo
  • 宜昌 网站建设石家庄限号
  • 曲阜市政对过做网站的是那家网络营销培训
  • 小学网站建设方案书域名注册入口
  • 网络网站租2023第三波疫情已经到来了