队列

来源:互联网 发布:手机免root数据恢复apk 编辑:程序博客网 时间:2024/06/10 17:18
#include<stdio.h>#include<stdlib.h>//队列之顺序队/*队尾入队,队头出队实例:独木桥front,rear初始值都为-1rear指向队尾元素,入队时rear++front指向队首元素的前一位值,出队时front++队满;rear=maxsize-1队空:rear=front缺点:会浪费前面空间,会出现rear=front=maxsize-1,队虽然空但是进不来了*/#define ElemType int#define MaxSize 10000typedef struct{ElemType data[MaxSize];int front;//头指针int rear;//尾指针}SqQueue;void InitQueue(SqQueue *&q){q = (SqQueue *)sizeof(SqQueue);q->front = -1;q->rear = -1;}void  DestroyQueue(SqQueue *&q){free(q);}bool QueueEmpty(SqQueue *&q){ return (q->front == q->rear);}bool InQueue(SqQueue *&q, ElemType &e){if (q->rear == MaxSize - 1)return false;q->rear++;q->data[q->rear] = e;return true;}bool OutQueue(SqQueue *&q, ElemType &e){if (q->rear == q->front)return false;q->front++;e = q->data[q->front];return true;}/*环形队(逻辑上)rear++换成rear+1%MaxSizefront++换成rear+1%MaxSize队空:rear=front队满:rear下一个是front进队:rear+1,入出队:front+1,出*/

原创粉丝点击