順序隊列的實現

#include<stdio.h>數組

#include<stdlib.h>函數

#define MAXSIZE 5指針

typedef int DataType;code

typedef struct{隊列

DataType queue[MAXSIZE];//數據數組get

int rear;//尾指針it

int front;//頭指針io

int count;//計數器queue

} Queue;數據

void initQueue(Queue *q);//初始化函數

int isEmpty(Queue q);//判非空

int insertRear(Queue *q,DataType x);//隊尾插入函數

int deleteFront(Queue *q,DataType *x);//隊頭刪除函數

int getFront(Queue q,DataType *x);//取對頭元素

int main(void){ Queue q; int x; initQueue(&q); isEmpty(q); insertRear(&q,5); getFront(q,&x); printf("x=%d\n",x); deleteFront(&q,&x); printf("count=%d\n",q.count); return 0; }

void initQueue(Queue *q){ q->rear=0; q->front=0; q->count=0; }

int isEmpty(Queue q){ if(q.count==0){ printf("隊列爲空\n"); return 0; } printf("隊列非空\n"); return 1; }

int insertRear(Queue *q,DataType x){ if(q->count==MAXSIZE){ printf("隊列爲滿\n"); return 0; }

q->queue[q->rear]=x;
q->rear=(q->rear + 1 )% MAXSIZE;
q->count++;
printf("插入成功\n");
return 1;

}

int deleteFront(Queue *q,DataType *x){ if(q->count==0){ printf("隊列爲空,無數可刪\n"); return 0; } q->count--; q->front=(q->front+1)%MAXSIZE; printf("刪除隊列成功\n"); return 1; }

int getFront(Queue q,DataType *x){ if(q.count==0){ printf("隊列爲空,沒法取\n"); return 0; } *x=q.queue[q.front]; printf("取數據成功\n"); return 1; }

相關文章
相關標籤/搜索