#include <stdio.h>
#include <stdlib.h>
typedef struct SQueue{
int * data;
int front,rear;
int maxSize;
} SQueue;
void initQueue(SQueue *queue, int size){
queue->front=0;
queue->rear=0;
queue->maxSize=size;
queue->data=(int*)malloc(size*sizeof(int));
}
void insertQueue(SQueue *queue, int data){
int csize=queue->rear;
if((csize+1)>queue->maxSize){
printf("queue is full, can't insert element again!");
return;
}
queue->data[queue->rear]=data;
queue->rear=queue->rear+1;
}
int outQueue(SQueue *queue){
int fIndex=queue->front;
if((fIndex+1)>=queue->maxSize){
printf("queue is empty, can't out element again!");
return -1;
}
int data= queue->data[queue->front];
queue->front=queue->front+1;
return data;
}
int isEmpty(SQueue queue){
if(queue.rear==queue.front){
return 1;
}
return 0;
}
int main()
{
SQueue queue;
initQueue(&queue,3);
insertQueue(&queue,1);
insertQueue(&queue,2);
insertQueue(&queue,3);
insertQueue(&queue,4);
int sd=isEmpty(queue);
printf("queue is full=%d!\n",sd);
int fdata=outQueue(&queue);
printf("data=%d!\n",fdata);
int wdata=outQueue(&queue);
printf("data=%d!\n",wdata);
return 0;
}
C语言数据结构-顺序队列-数组实现
最新推荐文章于 2023-04-12 21:55:21 发布