zoukankan      html  css  js  c++  java
  • 《循环队列---队列的顺序表示和实现》

    //循环队列---队列的顺序表示和实现


    #include<stdio.h>
    #include<stdlib.h>
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define INFEASIBLE -1
    #define OVERFLOW -2
    #define MAXQSIZE 50 //最大队列长度
    typedef int QElemType; //数据元素类型
    typedef int Status; //函数结果状态类型
    typedef struct
    {
    QElemType *base;
    int front,rear;
    }SqQueue;

    Status InitQueue(SqQueue &Q)
    {//构造一个空队列Q
    Q.base = (QElemType *)malloc(MAXQSIZE*sizeof(QElemType));
    if(!Q.base)
    exit(OVERFLOW);
    Q.front = Q.rear = 0;
    return OK;
    }

    Status EnQueue(SqQueue &Q,QElemType e)
    {//插入元素e为Q的新的队尾元素
    if((Q.rear + 1)%MAXQSIZE == Q.front)
    return ERROR; //队列满
    Q.base[Q.rear] = e;
    Q.rear = (Q.rear + 1)%MAXQSIZE;
    return OK;
    }

    int QueueLength(SqQueue Q)
    {//返回Q的元素的个数,即队列的长度
    return(Q.rear - Q.front + MAXQSIZE)%MAXQSIZE;
    }

    Status DeQueue(SqQueue &Q,QElemType &e)
    {//删除队列的头元素,用e返回其值
    if(Q.front == Q.rear)
    return ERROR;
    e = Q.base[Q.front];
    Q.front = (Q.front+1)%MAXQSIZE;
    return e;
    }

    int main()
    {
    SqQueue q;
    int i,e,n;

    //调用InitQueue(SqQueu &Q)函数,创建一个空队列
    InitQueue(q);
    printf("队列已创建好...");
    printf(" ");

    //调用EnQueue(SqQueue &Q,QElemType e)函数,插入元素e为Q的队尾元素
    /*
    printf("Please input a integer number:(ending 9999)");
    scanf("%d",&e);
    while(e!=9999)
    {
    EnQueue(q,e);
    printf("Please input a integer number:(ending 9999)");
    scanf("%d",&e);
    }
    printf(" ");
    */
    //调用EnQueue(SqQueue &Q,QElemType e)函数,插入元素e为Q的队尾元素
    printf("请输入要入队列的个数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    printf("Please input a number:");
    scanf("%d",&e);
    EnQueue(q,e);
    }
    printf(" ");

    //调用QueueLength(SqQueue Q)函数,输出当前队列中元素的个数
    printf("队列中的元素个数为:%d",QueueLength(q));
    printf(" ");

    //调用DeQueu(SqQueue &Q,QElemType &e)函数,删除队头的元素
    printf("被删除的队头元素是:%d",DeQueue(q,e));
    printf(" ");

    //调用QueueLength(SqQueue Q)函数,输出当前队列中元素的个数
    printf("队列中的元素个数为:%d",QueueLength(q));
    printf(" ");

    return 0;
    }

  • 相关阅读:
    web页面接入QQ客服的方法
    如何使用webapi集成swagger
    TCP的三次握手和四次挥手
    笔记-ASP.NET WebApi
    .net开发人员应该知道的几个网站
    HttpClient在async中产生的代码不执行和堵塞
    【转】CA证书申请+IIS配置HTTPS+默认访问https路径
    WebApi捕捉异常的一套方案
    使用Topshelf部署你的Job
    使用ajax局部更新Razor页面
  • 原文地址:https://www.cnblogs.com/sun-/p/4861390.html
Copyright © 2011-2022 走看看