简单的循环队列

#include <stdlib.h>

#define maxSize 5

//存放队列元素
int data[maxSize];
//对头指针
int front = 0;
//队尾指针
int rear = 0;

void enQueue(int e){
    //牺牲一个存储单元判断队列为满
    if((rear+1)%maxSize == front){
        printf("queue is full \n");
    }else{
        data[rear] = e;
        printf("%d is enQueue, saved in index %d \n",e,rear);
        rear = (rear+1)%maxSize;    
    }    
}

void deQueue(){
    if(rear == front){
        printf("queue is empty \n");
    }else{
        printf("%d deQueued, saved in index %d \n",data[front],front);
        front = (front+1)%maxSize;
    }
}

int    main(){
    enQueue(1);
    enQueue(2);
    enQueue(3);
    enQueue(4);
    enQueue(5);
    deQueue();
    deQueue();    
    deQueue();    
    deQueue();    
    deQueue();            
    return 0;
}

posted @ 2012-09-26 11:18  23lalala  阅读(112)  评论(0编辑  收藏  举报