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 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题