来源:互联网 发布:淘宝怎么导出订单信息 编辑:程序博客网 时间:2024/04/30 03:20
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
//类型
typedef struct node{

    int data[MAX];
    int head;
    int tail;
}queue_t;

//创建
void  create_queue(queue_t* queue)
{

   (*queue).tail=0;
   (*queue).head=0;
}
//判空

int isnull(queue_t* queue)
{
    return (*queue).head==(*queue).tail;

}
int isfull(queue_t* queue)
{
    return ((*queue).tail+1)%20==(*queue).head;

}
//入队
int push(queue_t* queue,int data)
{

    if(isfull(queue))
        return -1;


    (*queue).data[(*queue).tail]=data;

    (*queue).tail=(((*queue).tail++))%20;
    return 0;
}
int pop(queue_t* queue,int* data)
{

    if(isnull(queue))
        return -1;

    *data=(*queue).data[(*queue).head];

    (*queue).head=(((*queue).head++))%20;

    return 0;
}

//长度
int length_queue(queue_t* queue)
{


    return ((*queue).tail-(*queue).head+20)%20;

}
//
int main(int argc, const char *argv[])
{
    queue_t queue;
    create_queue(&queue);

    int i;
    int data;

    printf("%d\n",isnull(&queue));
    for(i=1;i<=20;i++)
    {
        push(&queue,i);
        printf("length_queue:%d\n",length_queue(&queue));
    }


    printf("%d\n",isfull(&queue));
    for(i=1;i<=20;i++)
    {

        if(pop(&queue,&data)==0)
        {
            printf("pop data:%d\n",data);
        }
    }

    printf("%d\n",isnull(&queue));
    return 0;
}
1 0
原创粉丝点击