队列

来源:互联网 发布:剑三成女捏脸数据 编辑:程序博客网 时间:2024/06/05 16:14
#include <stdio.h>#define QUEUE_SIZE  100#define OK            0   #define ERROR        -1    typedef int DataType;typedef struct{DataType data[QUEUE_SIZE];int rear, front;}SeqQueue;// 置空队列int InitQueue(SeqQueue *q){if (q == NULL){return ERROR;}q->rear = 0;q->front = 0;return OK;}// 判断是否空队int QueueEmpty(SeqQueue *q){if (q == NULL){return ERROR;}return q->rear == q->front;}// 判断是否队满int QueueFull(SeqQueue *q){if (q == NULL){return ERROR;}return (q->rear+1)%QUEUE_SIZE == q->front;}// 入队int EnQueue(SeqQueue *q, int data){if (q == NULL){return ERROR;}if (QueueFull(q)){return ERROR;}q->rear = (q->rear+1) % QUEUE_SIZE;q->data[q->rear] = data;return OK;}// 出队int DeQueue(SeqQueue *q){if (q == NULL){return ERROR;}if (QueueEmpty(q)){return ERROR;}q->front = (q->front+1) % QUEUE_SIZE;return q->data[q->front];}// 获取队头元素int GetFront(SeqQueue *q){if (q == NULL){return ERROR;}if (QueueEmpty(q)){return ERROR;}int pos = (q->front+1) % QUEUE_SIZE;return q->data[pos];}int main(){SeqQueue queue;if (InitQueue(&queue) != OK){return -1;}if (QueueEmpty(&queue)){printf ("空队列\n");}else{printf ("不是空队列\n");}int i=0;for (i = 0; i<10; i++){EnQueue(&queue, i);}if (QueueEmpty(&queue)){printf ("空队列\n");}else{printf ("不是空队列\n");}for (i = 0; i<10; i++){printf ("%4d", DeQueue(&queue));}if (QueueEmpty(&queue)){printf ("空队列\n");}else{printf ("不是空队列\n");}    return 0;}


0 0
原创粉丝点击