循环队列:
typedef struct CQNode
{
int data[MAXSIZE];
int front;
int rear;
}CQNode,*CQList;
说明:front代表队列头,rear代表队列尾。整个队列总共能存MAXSIZE-1个数据。
front指向队列第一个有效数据的前面一个空格。rear指向最后一个有效数据。
刚入队的元素总是存在队尾。
刚开始时:front=rear=0
队列空:front == rear
队列满:(rear+1)%MAXSIZE == front
队列中有效元素个数:(rear - front+ MAXSIZE) % MAXSIZE;
队列中剩余空间个数:(front - rear - 1 + MAXSIZE) % MAXSIZE;
在循环队列中写入一个元素时:
rear = (rear+1) % MAXSIZE;
data[rear] = element;
读走一个元素时:
front = (front+1) % MAXSIZE;
element = data[front];
阅读(1119) | 评论(0) | 转发(0) |