標籤:nbsp sizeof 初始化 exit ini 儲存 overflow erro 入隊
1 //迴圈隊列基本操作 2 #define MAXSIZE 100 3 Typedef struct{ 4 QElemType *base; 5 int front; 6 int rear; 7 }SqQueue; 8 9 //隊列的初始化10 Status InitQueue(SqQueue &Q){11 Q.base=(QElemType *)malloc(MAXSIZE*sizeof(QElemType));12 if(!Q.base) exit(OVERFLOW);13 Q.front=Q.rear;14 return OK;15 } 16 //求隊列的長度17 int QueueLength(SqQueue Q){18 return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;19 } 20 //迴圈隊列入隊21 Status EnQueue(SqQueue &Q,QElemType e){22 if((Q.rear+1)%MAXSIZE==Q.front) return ERROR; //隊滿 23 Q.base[Q.rear]=e; //新元素入隊尾 24 Q.rear=(Q.rear+1)%MAXSIZE; //隊尾指標+1 25 return OK;26 }27 //迴圈隊列出隊28 Status DeQueue(SqQueue &Q,QElemType &e){29 if(Q.front==Q.rear) return ERROR; //隊空30 e=Q.base[Q.front]; //儲存隊頭元素 31 Q.front=(Q.front+1)%MAXSIZE; //隊頭指標+1 32 return OK;33 }34 //取隊頭元素35 SElemType GetHead(SqQueue Q){36 if(Q.front!=Q.rear) //隊列不為空白 37 return Q.base[Q.front]; //返回隊頭指標元素的值,隊頭指標不變 38 }
迴圈隊列的基本操作