资源简介

这是一个循环队列的c语言实现程序,实现入队、出队等操作

资源截图

代码片段和文件信息

/***************************************************************
    这是一个循环队列的c语言实现程序
    声明:该程序仅作为学习参考,不得用于其他用途,否则后果自负!
    作者:jim船长(CSDN昵称)
    个人主页:https://me.csdn.net/luotuoxiansheng
    时间:2018/11/2
***************************************************************/
#include 
#include 

#define MAXSIZE 10

typedef int ElemType;
typedef int Status;

typedef struct
{
    ElemType data[MAXSIZE];
    int front;
    int rear;
}Queue;

/*初始化队列*/
Status InitQueue(Queue *Q)
{
    Q->front=0;
    Q->rear=0;
    return 1;
}

/*队列长度*/
int QueueLength(Queue Q)
{
    return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;//计算队列长度公式
}

/*入队*/
Status EnQueue(Queue *QElemType e)
{
    if((Q->rear+1)%MAXSIZE==Q->front)//判断队满(即rear后移一位等于front)
    return 0;
    Q->data[Q->rear]=e;
    Q->rear=(Q->rear+1)%MAXSIZE;//rear后移一位
    return 1;
}

/*出队*/
ElemType DeQueue(Queue *Q)
{
    ElemType e;
    if(Q->front==Q->rear)//判断队空
    return 0;
    e=Q->data[Q->front];//队首赋给e
    Q->front=(Q->front+1)%MAXSIZE;//front后移一位
    return e;
}

int main()
{
    int chilength;
    Queue Q;
    ElemType e;
    InitQueue(&Q);
    while(1)
        {
            printf(“\n1.入队列   2.出队列   3.查看当前列 :“);
            scanf(“%d“&ch);
            switch(ch)
            {
                case 1:
                        {
                            printf(“插入数字:“);
                            scanf(“%d“&e);
                            if( EnQueue(&Qe))
                            printf(“Success!\n“);
                            else
                                 printf(“Faild!\n“);
                        }break;
                case 2:
                        {
                            printf(“The out-queue number is:%d\n“DeQueue(&Q));
                        }break;
                case 3:
                        {
                            length=QueueLength(Q);
                            for(i=0;i                            {
                                printf(“%d\n“Q.data[Q.front+i]);
                            }
                            printf(“Length is: %d\n“length);
                        }break;
                default:printf(“error!\n“);
            }
        }


}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-02 16:23  循环队列\
     文件        2562  2018-11-02 16:44  循环队列\SqQueue.c
     文件       28887  2018-11-02 16:21  循环队列\SqQueue.exe
     文件        1736  2018-11-02 16:21  循环队列\SqQueue.o

评论

共有 条评论