队列:
含义:是一种先入先出(FIFO)的数据结构。
当我们把数据一个一个放入队列中。当我们需要用到这些数据时,每次都从队列的头部取出第一个数据进行处理。就像排队进场一样,先排队的人先进场。
结构如下图所示
环形队列:
含义:它是在写程序时候一种队列的特殊表达方式,把队列数据组中的最后一个元素和第一个元素相连构成环,所以称为环形队列。
优点:环形队列在C/C++编程中首元素出队后不需要把队列所有元素向前移动,而取代把把队首指针向后移动,由于其环形结构,在插入元素后队尾指针会循环到队首原来的位置。相对普通队列的出队操作减少了大量的运算量。
程序清单:
本例中包含三个文件:
(插入图片)
Queue.h:
#ifndef _QUEUE_H #define _QUEUE_H typedef unsigned char uint8_t; typedef int Elem; typedef struct circlequeue { int iLength; int iSize; int iHead; int iTail; Elem *Datas; }Queue; uint8_t Queue_Init(Queue* queue,int size); uint8_t Queue_Delete(Queue *queue); uint8_t isQueueEmpty(Queue *queue); uint8_t isQueueFull(Queue *queue); int Queue_size(Queue *queue); uint8_t Queue_push(Queue *queue,Elem data); Elem Queue_front(Queue *queue); Elem Queue_back(Queue *queue); uint8_t Queue_pop(Queue *queue); void Queue_printf(Queue *queue); #endif