如何用C语言实现【数据结构】循环队列
小标 2018-07-20 来源 : 阅读 635 评论 0

摘要:本文主要向大家介绍了如何用C语言实现【数据结构】循环队列,通过具体的内容向大家展示,希望对大家学习C语言有所帮助。

本文主要向大家介绍了如何用C语言实现【数据结构】循环队列,通过具体的内容向大家展示,希望对大家学习C语言有所帮助。

"Queue.h"

 

#include "Queue.h"

#include <stdio.h>

#include <stdlib.h>

status Queue_init(SqQueue *Q)

{

    Q->data = (char*)malloc(sizeof(char)*MAXSIZE);

    Q->front = 0;

    Q->rear = 0;

    return OK;

}

 

status Queue_In(SqQueue *Q,char e) //进入队列{

    if((Q->rear +1)%MAXSIZE ==Q->front)

    {

        printf("队列已满");

        return ERROR;

    }

    Q->data[Q->rear] = e;

    Q->rear =(Q->rear+1)%MAXSIZE;

    return OK;

}

char Queue_Out(SqQueue *Q)

{

    char e;

    if(Q->front == Q->rear)

    {

        printf("队列为空");

        return ERROR;

    }

    e = Q->data[Q->front];

    Q->front = (Q->front+1)%MAXSIZE;

    return e;

}void Print_Queue(SqQueue Q)

{

    int i=Q.front;

    printf("队列:\n");

    while(i!= Q.rear)

    {

        printf("%c",Q.data[i]);

        i = (i+1)%MAXSIZE;

    }

    printf("\n");

}

int Queue_length(SqQueue Q)

{

    return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;

}

 

"main.c"

 

#include <stdio.h>

#include <stdlib.h>

#include "Queue.h"

#include <string.h>

int main()

{

    SqQueue Q;

    char c;

    char rec[MAXSIZE] ;

    int i;

    Queue_init(&Q);

    printf("请输入一个字符串:\n");

    gets(rec);

    for(i=0;rec[i]!= '\0';i++)

    {

        Queue_In(&Q,rec[i]);

    }

    Print_Queue(Q);

    printf("队长为:%d\n",Queue_length(Q));

    printf("!加入游戏\n");

    Queue_In(&Q,'!');

    printf("%c退出了游戏\n",Queue_Out(&Q));

    Print_Queue(Q);

    return 0;

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

 


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程