循环队列

来源:互联网 发布:python自动化性能测试 编辑:程序博客网 时间:2024/06/16 19:54
//循环队列#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Queue{    int * pBase;int front;int rear;}QUEUE;void init(QUEUE *);bool en_queue(QUEUE *,int val);//入队 void traverse_queue(QUEUE *);//遍历 bool full_queue(QUEUE *);//满队 bool out_queue(QUEUE *,int *);//出队 bool empty_queue(QUEUE *);//是否为空 int main(){   QUEUE Q;    int val;    init(&Q);    en_queue(&Q,1);    en_queue(&Q,2);    en_queue(&Q,3);    en_queue(&Q,4);    en_queue(&Q,5);    en_queue(&Q,6);    traverse_queue(&Q);    if(out_queue(&Q,&val))    {    printf("out queue success!");    }else    {    printf("out queue false!");    }    traverse_queue(&Q);return 0;} void init(QUEUE *pQ){pQ->pBase=(int*)malloc(sizeof(int)*6);pQ->front=0;pQ->rear=0;}bool full_queue(QUEUE *pQ){if((pQ->rear+1)%6==pQ->front)return true;elsereturn false;}bool en_queue(QUEUE *pQ,int val){if(full_queue(pQ)){return false;}else{   pQ->pBase[pQ->rear]=val;   pQ->rear=(pQ->rear+1)%6;return true;}}void traverse_queue(QUEUE *pQ){  int i=pQ->front;  while(i!=pQ->rear)  {  printf("%d",pQ->pBase[i]);  i=(i+1)%6;  }  return;}bool empty_queue(QUEUE *pQ){if(pQ->front==pQ->rear)return true;elsereturn false;} bool out_queue(QUEUE *pQ,int *pVal){if(empty_queue(pQ)){return false;}else{   *pVal=pQ->pBase[pQ->front];   pQ->front=(pQ->front+1)%6;}}   


 
0 0
原创粉丝点击