队列介绍
树图思维导图提供 队列 在线思维导图免费制作,点击“编辑”按钮,可对 队列 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是: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
实现链队列
入队时只能在尾入队,不带头结点的队列第一个元素入队需要特别处理
出队时只能从头删除,删除最后一个结点时要特殊处理
一般不会满
创建,销毁
增(入队,在队尾进行)、删(出队,在队头进行)
查(获取队头元素但不删除)
判空
输入受限的双端队列
输出受限的双端队列:从第一个输出元素可以判断之前元素相对位置
树图思维导图提供 早期接触农业、生物多样性和绿地与炎症性肠病风险之间的关系:一项基于人群的队列研究 在线思维导图免费制作,点击“编辑”按钮,可对 早期接触农业、生物多样性和绿地与炎症性肠病风险之间的关系:一项基于人群的队列研究 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:75be218ffb126e173bd37cfbce4760ff
树图思维导图提供 栈和队列的应用思维脑 在线思维导图免费制作,点击“编辑”按钮,可对 栈和队列的应用思维脑 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a1fbcbaa0d1a723bbeca8cfdb13cfea7