#include <iostream>
#define QUEUE_SIZE 20
typedef struct queue
{
unsigned int array[QUEUE_SIZE];
int front;
int rear;
int counter;
} ARRAY_QUEUE_S;
void init_queue(ARRAY_QUEUE_S *_queue)
{
_queue->front = 0;
_queue->rear = -1;
_queue->counter = 0;
printf("init a queue successfully!\n");
}
int in_queue(ARRAY_QUEUE_S *_queue, int _element)
{
if (_queue->counter >= QUEUE_SIZE){
printf("the queue is full!\n");
return 0;
}else{
_queue->rear = (_queue->rear + 1) % QUEUE_SIZE;
_queue->array[_queue->rear] = _element;
_queue->counter++;
printf("in queue an element %d\n", _element);
return 1;
}
}
int out_queue(ARRAY_QUEUE_S *_queue, int *_element)
{
if (0 == _queue->counter){
printf("the queue is empty!\n");
return 0;
}else{
*_element = _queue->array[_queue->front];
printf("out queue is %d\n", *_element);
_queue->front = (_queue->front + 1) % QUEUE_SIZE;
_queue->counter--;
return 1;
}
}
int main(int argc, char *argv[])
{
int j;
ARRAY_QUEUE_S queue;
init_queue(&queue);
for (int i = 0; i < 10; i++){
if (0 == in_queue(&queue, i)){
break;
}
}
for (int i = 0; i <= 10; i++){
if (0 == out_queue(&queue, &j)){
break;
}
}
return 0;
}
C语言实现数组队列
猜你喜欢
转载自blog.csdn.net/lala0903/article/details/106485040
今日推荐
周排行