循环队列的操作(初始化,入队,出对,销毁,输出)

#include/*循环队列的操作(初始化,入队,出对,销毁,输出)*//*2009.08.23*/ #include #include #define MAXSIZE 50 #define FALSE 0 #define TRUE 1 typedef int QueueElemType; typedef struct Node { QueueElemType *base; int front; int rear; }SqQueue; int InitSqQueue(SqQueue *Q)//初始化 { Q->base=(QueueElemType *)malloc(MAXSIZE*sizeof(QueueElemType)); if(!Q->base) return FALSE; else { Q->front=Q->rear=0; return TRUE; } } int EnQueue(SqQueue *Q,QueueElemType e)//入队 { if((Q->rear+1)%MAXSIZE==Q->front) return FALSE; Q->base[Q->rear]=e; Q->rear=(Q->rear+1)%MAXSIZE; return TRUE; } int DeQueue(SqQueue *Q,QueueElemType e)//出对 { if(Q->front==Q->rear) return FALSE; e=Q->base[Q->front]; Q->front=(Q->front+1)%MAXSIZE; return e; } void print(SqQueue *Q)//输出队列 { int i; if(Q->front==Q->rear) printf("/nThe Queue is void !"); i=Q->front; for(;irear;i++) printf("%d ",Q->base[i]); } int DestroyQueue(SqQueue *Q)//销毁队列 { free(Q->base); return TRUE; } void main() { int max,i,value,x,m; SqQueue QU; InitSqQueue(&QU);//初始化队列QU printf("/nplease input the Queue Length:"); scanf("%d",&max); printf("/nplease input the Queue Value:"); for(i=0;i

你可能感兴趣的:(数据结构)