顺序队列的实现

#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; }

相关文章
相关标签/搜索