顺序队列基本运算(实验题3.3)

来源:互联网 发布:周立功单片机教程 编辑:程序博客网 时间:2024/06/05 22:06
////顺序队列基本运算//2013-10-14 23:27//#pragma once#define MaxSize 5typedef int ElemType;typedef struct{ElemType elem[MaxSize];int front,rear;    //队首和队尾指针}SqQueue;void InitQueue(SqQueue* &q);int enQueue(SqQueue* &q,ElemType e);  //进队一个元素int deQueue(SqQueue* &q,ElemType &e);  //出队一个元素void ClearQueue(SqQueue* &q);int QueueEmpty(SqQueue* q);int QueueLength(SqQueue* q);void DisQueue(SqQueue* q);


 

 

#include "SqQueue.h"#include <malloc.h>#include <stdio.h>void InitQueue( SqQueue* &q ){q = (SqQueue*)malloc(sizeof(SqQueue));q->front = q->rear = 0;}int enQueue( SqQueue* &q,ElemType e )  //进队一个元素  ->front为空{if((q->rear+1)%MaxSize == q->front)  //队满{printf("队满\n");return 0;}q->rear = (q->rear+1)%MaxSize;q->elem[q->rear] = e;}int deQueue( SqQueue* &q,ElemType &e )  //出队一个元素{if ( q->front == q->rear)   //队空{return 0;}q->front = (q->front+1)%MaxSize;e = q->elem[q->front];}void ClearQueue( SqQueue* &q ){free(q);}int QueueEmpty( SqQueue* q ){return q->front == q->rear;}int QueueLength( SqQueue* q ){return (q->rear - q->front +MaxSize)%MaxSize;}void DisQueue( SqQueue* q ){if (q->front == q->rear){printf("空队/n");}int i = q->front+1;while ( i%MaxSize != q->rear){printf("%d,",q->elem[i%MaxSize]);i++;}printf("%d,",q->elem[i%MaxSize]);printf("\n");}


 

#include "SqQueue.h"int main(){SqQueue* q;InitQueue(q);enQueue(q,1);DisQueue(q);enQueue(q,2);DisQueue(q);enQueue(q,3);DisQueue(q);enQueue(q,4);DisQueue(q);enQueue(q,5);ElemType data;deQueue(q,data);DisQueue(q);ClearQueue(q);return 0;}


 

原创粉丝点击