顺序循环队列的表示和实现(少用一个存储空间)

来源:互联网 发布:js过渡效果 编辑:程序博客网 时间:2024/06/05 04:55

头文件:函数的声明

#include <stdio.h>#include <stdlib.h>#define QUEUESIZE 100typedef char ElemType;typedef struct{ElemType queue[QUEUESIZE];int front;int rear;}SeqQueue;void InitQueue(SeqQueue *SCQ);int QueueEmpty(SeqQueue SCQ);int EnQueue(SeqQueue *SCQ,ElemType e);int DeQueue(SeqQueue *SCQ,ElemType *e);int Gethead(SeqQueue SCQ,ElemType *e);void ClearQueue(SeqQueue *SCQ);

函数的定义

#include "循环队列.h"void InitQueue(SeqQueue *SCQ){SCQ->front = SCQ->rear  = 0;}int QueueEmpty(SeqQueue SCQ){if(SCQ.front == SCQ.rear){return 1;}else{return 0;}}int EnQueue(SeqQueue *SCQ,ElemType e){if(SCQ->front  == (SCQ->rear + 1)%QUEUESIZE){return 0;}else{SCQ->queue[SCQ->rear] = e;SCQ->rear = (SCQ->rear + 1)%QUEUESIZE;return 1;}}int DeQueue(SeqQueue *SCQ,ElemType *e){if(SCQ->front == SCQ->rear){return 0;}else{*e = SCQ->queue[SCQ->rear];SCQ->front = (SCQ->front + 1)%QUEUESIZE;return 1;}}int Gethead(SeqQueue SCQ,ElemType *e){if(SCQ.front == SCQ.rear){return 0;}else{*e = SCQ.queue[SCQ.front] ;return 1;}}void ClearQueue(SeqQueue *SCQ){SCQ->front = SCQ->rear  = 0;}


0 0
原创粉丝点击