#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语言数据结构-顺序队列-数组实现
最新推荐文章于 2021-05-21 07:21:43 发布
本文介绍了一个简单的队列数据结构的实现方法,并演示了如何进行初始化、插入元素、删除元素等基本操作。通过具体的C语言代码示例,展示了队列在达到最大容量时的行为以及如何检查队列是否为空。
366

被折叠的 条评论
为什么被折叠?



