zoukankan      html  css  js  c++  java
  • 数据结构之循环队列

    #include<bits/stdc++.h>
    #define maxsize 1024
    typedef struct
    {
        int data[maxsize];
        int front,rear;
        int num;//队列中间元素的个数
    }csequeue;//循环队列的定义
    csequeue *q;
    void init_sequeue()
    {
        q=(csequeue*)malloc(sizeof(csequeue));//为q队列申请存储空间
        q->rear=q->front=maxsize-1;
        q->num=0;
    }//构建空的循环队列
    
    int in_sequeue(csequeue *q,int x)
    {
        if(q->num==maxsize-1)
        {
            printf("队满
    ");
            return -1;
        }
        else
        {
            q->rear=(q->rear+1)%maxsize;
            q->data[q->rear]=x;
            q->num++;
            return 1;
        }
    }//入循环队列
    
    int out_sequeue(csequeue *q)
    {
        if(q->num==0)
        {
            printf("队空
    ");
            return -1;
        }
        else
        {
            q->front=(q->front+1)%maxsize;
            int x=q->data[q->front];
            q->num--;
            return x;
        }
    }//出循环队列
    
    int empty_sequeue(csequeue *q)
    {
        if(q->num==0)
            return 1;
        else
            return 0;
    }//判断循环队列是不是空
    
    int main()
    {
        init_sequeue();
        printf("请输入要进入循环队列的数据个数:
    ");
        int n;
        scanf("%d",&n);
        int i;
        for(i=0;i<n;i++)
        {
            int x;
            scanf("%d",&x);
            in_sequeue(q,x);
        }
        while(empty_sequeue(q)==0)
        {
            int x=out_sequeue(q);
            printf("%d
    ",x);
        }
        return 0;
    }

    不正确的地方麻烦指正哦!!!

  • 相关阅读:
    Linux 环境下umount, 报 device is busy 的问题分析与解决方法
    WScript与CScript的区别
    20170803上课笔记
    20170802上课随笔
    20170801上课笔记
    20170731上课笔记
    20170729上课笔记
    20170727上课笔记
    20170726上课笔记
    20170725上课笔记
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8708635.html
Copyright © 2011-2022 走看看