队列

队列

是一种先进先出(FIFO)线性表。只允许在 其一端删除元素,即队头(front),只允许在其另一 端插入元素,即队尾(rear)。

 

 入队时需先修改入队指针(队尾指针) rear = = (rear +1)% QueueMaxSize

出队时需要修改队头指针 front == (front +1)% QueueMaxSize

rear 指出实际队尾元素所在的位置,front 指出实际队头元素所在位置的前一个位置,  front 指向的位置不存放数据元素.

 

队列的操作判断条件:

初始时, 队列为空, 有 front=0 rear=0

队空: front==rear 1   约定 rear 指出实际队尾元素所在的位置, front 指出实际队头元素所在位置的前一个位置

队满: (rear+1)%QueueMaxSize == front

入队: (rear+1)% QueueMaxSize == front 然后修改入队指针(队尾指针) rear = (rear +1)% QueueMaxSize 最后将元素入队。

出队:front == rear 然后修改队头指针 front = (front +1)% QueueMaxSize 最后将元素出队。

求队长:若存储队列的数组的长度为N,则队列长度(即所含元素个数)为: (N+rear-front)%N

队列的存储:

队列的顺序存储:在顺序队列中插入和删除,不需要比较和移动任何元素,只需修改队尾和队首指 针,并向队尾写入元素或从队首取出元素, 时间复杂度为:O(1)

队列的链式存储: 在链队中插入和删除,不需要比较和移动任何元素,只需修改个别相关指 针和进行结点的动态分配或回收操作 ,时间复杂度为:O(1)

 

 

队列的应用:

posted @ 2019-10-21 14:37  暖暖-木木  阅读(245)  评论(0编辑  收藏  举报