队列介绍
树图思维导图提供 队列 在线思维导图免费制作,点击“编辑”按钮,可对 队列 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f98bb1370a46c4018f231cd77be68905
队列(queue)思维导图模板大纲
只允许在一端插入另一端删除的线性表,插入的一端为队尾,删除的一端为队头;也叫先进先出表
特性:先进先出(FIFO)
术语:队头——允许删除的一侧;队尾——允许插入的一端;空队列;队头元素;队尾元素
实现思想
用静态数组存放数据元素,设置队头队尾指针
循环队列:用模运算将存储空间在逻辑上变为环形
克服了“假溢出”时大量移动数据元素
假溢出:队尾已达到一维数组的高下标,不能再插入,而队中元素个数小于队列长度
考虑rear指向下一个插入位置,front指向队头位置
循环队列
初始化及判空条件
初始化为rear = front = 0;判空为rear == front
判满条件
(rear + 1)%maxsize == front
入队
先判满,不满则queue[rear] =x;rear = (rear + 1)%maxsize;
出队
先判空,不空则x = queue[front];front = (front + 1)% maxsize;
特点及注意
rear所指位置被牺牲
队列长度:(rear + maxsize -front)%maxsize
如果是数组A[m……n],则队列大小为n-m+1,此时队满条件为(rear+1 -m)%(n-m+1) + m =front,元素个数把Maxsize改成n-m+1
注意点:无论入队出队rear、front都是+1
循环队列缺点:循环往复的利用存储空间,导致曾经删除的元素被覆盖;如果需要这些曾经的信息,还是可以用非循环队列
用size变量判断满和空
新增变量size用于记录队列当前长度
初始化时size=0
插入成功size++,删除成功size--
判断满:size==maxsize
用tag变量判断满和空
新增tag变量表示最近进行的时删除还是插入操作
初始化时size=0
删除操作成功,tag = 0;插入操作成功,tag = 1;
判空:front == rear && tag == 0
判满:front == rear && tag == 1
如果rear改为指向队尾元素
初始时rear指向maxsize - 1
元素个数为(rear - front + 1)% maxsize
实现链队列
入队时只能在尾入队,不带头结点的队列第一个元素入队需要特别处理
出队时只能从头删除,删除最后一个结点时要特殊处理
一般不会满
创建,销毁
增(入队,在队尾进行)、删(出队,在队头进行)
查(获取队头元素但不删除)
判空
输入受限的双端队列
输出受限的双端队列:从第一个输出元素可以判断之前元素相对位置
树图思维导图提供 环境空气污染和胰岛素敏感性之间的纵向关联:来自KORA队列研究的结果 在线思维导图免费制作,点击“编辑”按钮,可对 环境空气污染和胰岛素敏感性之间的纵向关联:来自KORA队列研究的结果 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:05a1570de9aff1ce3943db94321ac5c5
树图思维导图提供 长期暴露于低水平的环境空气污染和中风和冠心病的发病率:在过去的项目内,对6个欧洲队列的汇总分析 在线思维导图免费制作,点击“编辑”按钮,可对 长期暴露于低水平的环境空气污染和中风和冠心病的发病率:在过去的项目内,对6个欧洲队列的汇总分析 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:aeb214df5055d8c5f449655fbfd81f7d