首页 > 其他分享 >3.7 队列的表示和实现

3.7 队列的表示和实现

时间:2023-03-18 21:23:15浏览次数:43  
标签:线性表 队列 元素 初始条件 3.7 ai 操作 实现

3.5 队列的表示和操作实现


  • 相关术语
    • 队列(Queue)是仅在表尾进行插入操作,在表头进行删除操作的线性表。
    • 表尾及a ( ( ( ( (n)))))端,称为队尾;表头即a ( ( ( ( (1)))))端称为队头
    • 它是一种先进先出(FIFO)的线性表
      插入的元素称为入队;删除的元素称为出队
      队列的存储结构分为链队或者顺序队
  • 队列的相关概念
    1. 定义:只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插)
    2. 逻辑结构:与同线性表相同,仍为一对一关系
    3. 存储结构:顺序队或者链队,以循环顺序队列更常见。
    4. 运算规则:只能在队首和队尾运算,且访问结点时依照先进先出(FIFO)的原则
    5. 实现方式:关键时掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。

3.5.1 队列的抽象数据类型定义


ADT  Queue{
  	数据对象:D={ai|ai∈ElemSet,i=1,2,...,n,n>=0}
  	数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}
  	基本操作:
      	InitQueue(&Q)
      			操作结果:构造一个空的队列
      	DestoryQueue(&Q)
      			初始条件:队列Q已经存在
      			操作结果:队列Q被销毁,不再存在
     	  ClearQueue(&Q)
      			初始条件:队列Q已经存在
      			操作结果:将队列Q清为空队列
      	QueueLength(Q)
      			初始条件:队列Q已经存在
      			操作结果:返回Q的元素个数,即队列长度。
       QueueEmpty(Q)
      			初始条件:队列Q已经存在
      			操作结果:若Q为空队列,则返回TURE,否则返回FALSE
      	GetHead(Q,&e)
      			初始条件:队列Q已经存在,且非空
      			操作结果:用e返回Q的队首元素
      	EnQueue(&Q,e)
      			初始条件:队列Q已经存在,Q空间未满
      			操作结果:插入元素e为Q的新元素
      	DeQueue(&Q,&e)
      			初始条件:Q为非空队列
      			操作结果:删除Q的队头元素,并用e返回其值。
}ADT Queue

标签:线性表,队列,元素,初始条件,3.7,ai,操作,实现
From: https://www.cnblogs.com/wangjunxiang/p/17231790.html

相关文章

  • 3.8 队列的顺序表示和实现
    3.5.2队列的顺序表示和实现队列的物理存储可以用顺序结构,也可用链式存储结构,相应地队列的存储方式也分为两种,即顺序队列和链式队列、队列的顺序表示——————......
  • 3.9 队列的链式表示和实现
    3.5.3队列的链式表示和实现适用于用户无法估计所用队列的长度,则适宜采用该类型的队列链式队列的结构图如下所示链队列的类型定义//这里是定义是每个节点类型t......
  • 3.1 栈和队列定义和特点
    栈和队列是限定插入和删除的只能在表“端点”进行的线性表普通线性表的插入和删除操作栈的定义和特点栈(stack)是一个特殊的线性表,是限定的仅在一端(通常是表尾)进行插......
  • 3.3 栈的表示和实现
    1、栈的抽象数据类型定义ADTStack{ 数据对象: D={ai|ai∈ElemSet,i=1,2,3,...,n。n>=0} 数据关系: R1={<ai-ai>|ai-1andai∈D,i=2,...,n} 约定an端为栈顶,a......
  • 3.4 顺序栈的表示和实现
    由于栈本身就是线性表,于是栈也有顺序存储和链式存储两种实现方式栈的顺序存储——顺序栈栈的链式存储——链栈顺序栈的表示和实现存储方式:同一般线性表的顺序存......
  • RHEL 7配置HAProxy实现Web负载均衡
    本文将简单介绍使用HAProxy实现web负载均衡,主要内容包括基于权重的轮询、为HAProxy配置https、配置http重定向为https、配置HAProxy使用独立日志。一、测试环境HAProxy:......
  • Vue实现图片点击隐藏效果
    前言:组件作为Vue.js最强大的功能之一,因其封装可复用的代码方便程序员调用和可根据需求对组件进行个性化开发而深受广大前端程序员的喜爱。组件化的开发大大提升了代码的复......
  • react方式实现rate组件
    看到网上写的rate组件,要么是react的class方式,要么就是基于classNameList的增删改查,总感觉不太完美,于是趁周末自己撸了一个,可以直接拿到自己的页面去试,喜欢请点个赞哦需求......
  • webpack原理(1):Webpack热更新实现原理代码分析
    热更新,主要就是把前端工程文件变更,即时编译,然后通知到浏览器端,刷新代码。服务单与客户端通信方式有:ajax轮询,EventSource、websockt。客户端刷新一般分为两种:整体页面刷新,......
  • React 实现 动态加载组件
    React实现动态加载组件import{Button}from'antd'importReact,{useState,lazy,Suspense}from'react'//这个地方动态加载组件constItem=lazy(()=>i......