zoukankan      html  css  js  c++  java
  • 【About Queue】(待改)

    队列

    队列满足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!
    ");
            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!
    ");
            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!
    ");
        }
        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
    ",front(Q));
        return 0;
    }
    我所理解的生活,就是和喜欢的一切在一起。
  • 相关阅读:
    KafkaOffsetMonitor
    锋利的KATANA
    用grunt搭建自动化的web前端开发环境
    网上书店订单功能的实现
    作用域和控制器
    使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
    ABP日志管理
    .NET开源项目
    服务总线
    Message解析流程(转)
  • 原文地址:https://www.cnblogs.com/suzyc/p/5095747.html
Copyright © 2011-2022 走看看