程式設計實現順序佇列的入隊操作和出隊操作,並將出隊結果輸出
阿新 • • 發佈:2019-02-20
標頭檔案:函式的宣告
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #define QUEUESIZE 100 typedef char ElemType; typedef struct { ElemType queue[QUEUESIZE]; int front; int rear; }SeqQueue; void InitQueue(SeqQueue *SQ); int QueueEmpty(SeqQueue SQ); int EnQueue(SeqQueue *SQ,ElemType e); int DeQueue(SeqQueue *SQ,ElemType *e); int Gethead(SeqQueue SQ,ElemType *e); void ClearQueue(SeqQueue *SQ);
函式的定義
#include "順序隊.h" void InitQueue(SeqQueue *SQ) { SQ->front = SQ->rear = 0; } int QueueEmpty(SeqQueue SQ) { if(SQ.front == SQ.rear) { return 1; } else { return 0; } } int EnQueue(SeqQueue *SQ,ElemType e) { if(SQ->rear == QUEUESIZE) { return 0; } else { SQ->queue[SQ->rear] = e; SQ->rear = SQ->rear + 1; return 1; } } int DeQueue(SeqQueue *SQ,ElemType *e) { if(SQ->front == SQ->rear) { return 0; } else { *e = SQ->queue[SQ->front]; SQ->front = SQ->front + 1; return 1; } } int Gethead(SeqQueue SQ,ElemType *e) { <span style="white-space:pre"> </span>if(SQ.front == SQ.rear) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>return 0; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>else <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>*e = SQ.queue[SQ.front]; <span style="white-space:pre"> </span>return 1; <span style="white-space:pre"> </span>} } void ClearQueue(SeqQueue *SQ) { SQ->front = SQ->rear = 0; }
函式的應用
#include "順序隊.h" int main(void) { SeqQueue Q; char str[] = "ABCDEFGH"; int i; char x; InitQueue(&Q); for(i = 0;i < sizeof(str)/sizeof(str[0]);i++) { EnQueue(&Q,str[i]); } DeQueue(&Q,&x); printf("出佇列的元素是:%c\n",x); printf("順序佇列中的元素是:"); if(!QueueEmpty(Q)) { for(i = Q.front ;i < Q.rear ;i++) { printf("%c",Q.queue[i]); } } printf("\n"); return 0; }