循环队列的操作
来源:互联网 发布:怎样在淘宝上联系卖家 编辑:程序博客网 时间:2024/05/22 09:47
基本思想
队列是一种操作受限的线性表,特点是“先进先出”,其限制在于允许在表的一端进行插入,称之为队尾(rear),新元素进队称为进队;在表的另一端进行删除队头(front),从队列中删除元素称为出队。
而顺序队作为队列的一种存储方式,常被运用,但是为了解决顺序队列的“假溢出”现象(顺序队中,是引入两个指针,且两个指针最终会达到数组的末端,虽然队中已没有元素,但还是无法让元素入队),我们引入了循环队列,即将数组弄成一个环,让两指针绕着环走,这样永远不会出现两者来到尽头却无路可走的情况,具体过程如下:
算法详情
#include<stdio.h>#include<iostream> #define maxSize 20typedef struct{ int data[maxSize]; int front; //队头 int rear; //队尾}//初始化队列算法void initQueue(SqQueue &qu){ qu.front = qu.rear = 0; //队首和队尾指针重合,指向0}//判断队空int isEmpty(SqQueue qu){ if(qu.front == qu.rear) //无论指向哪个位置 return 1; else return 0;}//进队算法int enQueue(SqQueue &qu,int x){ if((qu.rear+1)%maxSize == qu.front) //无论指向哪个位置 return 0; qu.rear = (qu.rear+1)%maxSize; //队未满,先移指针 qu.data[qu.rear] = x; //再存入元素 return 1;}//出队算法int deQueue(SqQueue &qu,int &x){ if(isEmpty(qu)) //队空 return 0; qu.front = (qu.front+1)%maxSize; //队未空,先移指针 x = qu.data[qu.front]; //再取出元素 return 1;}int main(){ //}
阅读全文
0 0
- 循环队列的操作
- 循环队列的操作
- 循环队列的操作(循环队列)
- 循环队列的相关操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的相关操作
- 循环队列的基本操作
- Android 视频流输出
- 数据结构实验之链表六:有序链表的建立
- 垃圾收集与分配策略——(五)内存分配与回收策略
- spring源码分析之FactoryBean
- 在windows10下安装CPU only模式的caffe+vs2013+anaconda笔记
- 循环队列的操作
- HTML基本格式
- js数据的深度迭代
- Hie with the Pie POJ
- Python正则表达式
- Python进阶
- php-DOM部分基础知识总结与实例(V客学院知识分享)
- 9.28 考试总结
- 线性表的建立和删除