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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题