首页 > 其他 > 详细

【About Queue】(待改)

时间:2016-01-03 07:34:59      阅读:173      评论:0      收藏:0      [点我收藏+]

队列

队列满足FIFO规则,先进先出。技术分享

C语言代码:(Segmentation fault你大爷(? ?皿?)?)

#include<stdio.h>
#include<stdlib.h>

typedef struct Queue
{
    int size;
    int front;
    int rear;
    int *elements;
}Queue;

void createqueue(Queue *Q,int maxsize)
{
    Q=(Queue*)malloc(sizeof(int)*maxsize);    
    /*初始属性*/
    Q->elements=(int*)malloc(sizeof(int)*maxsize);
    //!!!???
    Q->size=maxsize;
    Q->front=Q->rear=0;    //置为空队列
}


void Dequeue(Queue *Q)
{
    if(Q->front==Q->rear)
    {
        printf("Queue is Empty!\n");
        return;
    }    //若为空队列要提醒下~
    else
    {
        Q->front=(Q->front+1)%Q->size;    //Q.front循环+1,为防止出现负数啦
    }
}


int front(Queue *Q)    //就是书上那个gethead()啦(-`ェ´-╬)
{
    if(Q->rear==Q->front)
    {
        printf("Queue is Empty!\n");
        exit(0);
    }
    return Q->elements[Q->front];
}

void Enqueue(Queue *Q,int element)
{
    if((Q->front+1)%Q->size==Q->front)    
    //这里空出一个元素,使得当(Q.front+1)%Q.size==Q.front,判断队列为满
    {
        printf("Queue is Full!\n");
    }
    else
    {
        Q->elements[Q->rear]=element;
        Q->rear=(Q->rear+1)%Q->size;
    }
}

int main()
{
    Queue *Q;
    createqueue(Q,3);
    Enqueue(Q,3);
    printf("%d\n",front(Q));
    return 0;
}

 

【About Queue】(待改)

原文:http://www.cnblogs.com/suzyc/p/5095747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!