• 【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;
    }
    我所理解的生活,就是和喜欢的一切在一起。
  • 相关阅读:
    MySQL 之 数据操作
    MySQL 之 库操作,表操作
    Python之协程
    IO模式和IO多路复用
    python之线程
    Python--多线程、多进程常用概念
    计算机组成原理
    python基础-守护进程、守护线程、守护非守护并行
    win7旗舰版 安装IIS中出现的问题
    sql 2008数据事务日志已满处理方法
  • 原文地址:https://www.cnblogs.com/suzyc/p/5095747.html
Copyright © 2020-2023  润新知