CycleQueue--循环队列(c语言简单实现)

 1 #include<stdlib.h>

 2 

 3 #define SIZE 10

 4 typedef char ele;

 5 

 6 typedef struct{

 7     ele *e;

 8     int front;

 9     int rear;

10 }cycleQueue;

11 

12 

13 //initQueue

14 void initQueue(cycleQueue *q){

15     q = (cycleQueue *)malloc(sizeof(cycleQueue));

16     q->e = (ele *)malloc(SIZE*sizeof(ele));

17     q->front=q->rear=0;

18 }

19 

20 //insertQueue

21 void insertQueue(cycleQueue *q,ele e){

22     if(q->front==(q->rear+1)%SIZE)return;

23     q->e[q->rear]=e;

24     q->rear=(q->rear+1)%SIZE;

25 }

26 

27 //popQueue

28 ele popQueue(cycleQueue *q){

29     if(q->front==q->rear)return NULL;

30     ele e = q->e[q->front];

31     q->front=(q->front+1)%SIZE;

32     return e;

33 }

 

你可能感兴趣的:(Queue)