zoukankan      html  css  js  c++  java
  • 循环数组队列

    //   队列的数组实现


    #include <cstdio>
    #include <cstdlib>
    //#define _OJ_

    #define maxsize 5
    typedef struct Lnode
    {
        int front;
        int rear;
        int *elem;
    } deque, *Deque;



    void
    creat_deque(Deque q)
    {
        q->elem = (int*) malloc (maxsize * sizeof(int));
        q->front = q->rear = 0;
    }

    int
    isfull(Deque q)
    {
        if((q->rear + 1) % maxsize == q->front)
            return 1;
        else
            return 0;
    }

    int
    isempty(Deque q)
    {
        if(q->front == q->rear)
            return 1;
        else
            return 0;
    }

    int
    deque_size(Deque q)
    {
        return (q->front - q->rear + maxsize) % maxsize;
    }

    void
    endeque(Deque q)
    {
        int x;
        scanf("%d", &x);
        q->elem[q->rear] = x;printf("%d ", q->rear);
        q->rear = (q->rear + 1) % maxsize;
    }

    int
    del_deque(Deque q)
    {
        int e;
        e = q->elem[q->front];
        q->front = (q->front + 1) % maxsize;
        return e;
    }

    int main(int argc, char const *argv[]) {
    #ifndef _OJ_  //ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
    #endif

        Deque q;
        creat_deque(q);
        printf("isempty == %d ", isempty(q));
        printf("size == %d ", deque_size(q));
        printf("full == %d ", isfull(q));

        int n, i;
        n = 3;
        do
        {
            endeque(q);
        }
        while (!isfull(q)) ;

        while (!isempty(q)) {
          printf("del == %d ", del_deque(q));
        }
    //值得注意的是此数组只可以存入 maxsize -1 个数据


        return 0;
    }

  • 相关阅读:
    visual studio code 中文
    vue中常用插件(货币、日期)
    PS与CSS字间距转换
    常用css样式(文字超出部分用省略号显示、鼠标经过图片放大、出现阴影)
    swiper在一个页面多个轮播图
    git上传项目
    Win10下安装SVN出现2503/2502解决方法
    关于yii2学习笔记:gii的使用
    nginx反向代理解决跨域
    树莓派4安装centos
  • 原文地址:https://www.cnblogs.com/airfand/p/4925882.html
Copyright © 2011-2022 走看看