Caijunmao 2017-08-29 04:19 采纳率: 50%
浏览 1878
已采纳

C语言求程序:顺序循环队列的实现和相关操作

求顺序循环队列的实现和相关操作的C语言程序代码。。。。。。。

  • 写回答

1条回答 默认 最新

  • cloudyzhao 2017-08-29 05:19
    关注

    #include

    #include

    #define OK 1

    #define ERROR 0

    #define QUEUE_SIZE 100

    typedef int Status;

    typedef int ElemType;

    typedef struct Qnode

    {

    ElemType base;

    int front;

    int rear;

    int count;

    } Qnode;

    Status Init(Qnode &qq)

    {

    qq.base = (ElemType
    )malloc(QUEUE_SIZE * sizeof(ElemType));

    if (qq.base == NULL) return ERROR;

    qq.front = 0;

    qq.rear = 0;

    qq.count = 0;

    return OK;

    }

    Status EnQueue(Qnode &qq, ElemType e)

    {

       if ((qq.rear + 1) % QUEUE_SIZE == qq.front)  
       return ERROR;  
       qq.base[qq.rear] = e;  
       qq.rear = (qq.rear + 1)%QUEUE_SIZE;  
       qq.count++;  
       return OK;  
    

    }

    Status DeQueue(Qnode &qq, ElemType &e)

    {

    if (qq.rear == qq.front)

    return ERROR;

    e = qq.base[qq.front];

    qq.front = (qq.front + 1) % QUEUE_SIZE;

    qq.count--;

    return OK;

    }

    Status GetTop(Qnode &qq, ElemType &e)

    {

    if (qq.rear == qq.front)

    return ERROR;

    e = qq.base[qq.front];

    return OK;

    }

    Staus Destroy(Qnode qq)

    {

    free(qq.base);

    qq.base = NULL;

    qq.count = 0;

    return OK;

    }

    int main()

    {

    Qnode qq;

    Init(qq);

    int m, i;

    printf("how many nums?\n");

    scanf("%d", &m);

    for (i = 0; i < m; i++)

    {

    int e;

    scanf("%d", &e);

    EnQueue(qq, e);

    }

    int e;

    GetTop(qq, e);

    printf("%d\n" , e);

    for (i = 0; i < m; i++)

    {

    DeQueue(qq, e);

    printf("%d ", e);

    }

    printf("\n");

    system ("pause");

    return 0;

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献