zoukankan      html  css  js  c++  java
  • 循环队列的基本操作 C语言

    #include<stdio.h>
    #include<stdlib.h>
    #define MaxSize 5
    typedef struct node* SeQuence;
    struct node {
        char data[MaxSize];
        int Front, Rear; //Front队头,出队用,Rear队尾,入队用
    };
    //初始化
    void InitQuence(SeQuence *L) {
        (*L) = (SeQuence)malloc(sizeof(struct node));
        (*L)->Front = 0;
        (*L)->Rear = 0;
    }
    //入队
    void AadQuence(SeQuence L, char x) {
        
        if ((L->Rear + 1) % MaxSize == L->Front) { //Front和Rear相遇队列满
            printf("满队列");
        }
        else {
            L->Rear = (L->Rear + 1) % MaxSize;  //队尾加一
            L->data[L->Rear] = x;
        }
    }
    //出队
    void DeQuence(SeQuence L, char *x) {
        if (L->Front ==L->Rear) { //相等说明空队列
            printf("空队列");
        }
        else {
            L->Front = (L->Front + 1) % MaxSize; //队头加一
            *x = L->data[L->Front];
        }
    }
    void PrintQuence(SeQuence L) {
        int i;
        i = (L->Front + 1) % MaxSize; //队头加一开始遍历
        while (i != L->Rear) {
            printf("%c", L->data[i]);
            i = (i + 1) % MaxSize;
        }
        printf("%c", L->data[i]); //队尾
        printf("
    ");
    }
    int main() {
        SeQuence q;
        char* y;
        char x;
        y = &x;
        InitQuence(&q);
        printf("输入数据:
    ");
        scanf("%c", &x);
        while (x != '
    ') {
            AadQuence(q, x);
            scanf("%c", &x);
        }
        PrintQuence(q);
        DeQuence(q, y);
        printf("出队数据是:%c
    ",*y);
        printf("剩余:
    ");
        PrintQuence(q);
        
    }
  • 相关阅读:
    内存溢出
    接手新业务
    pjb fabu
    中文手册
    人背的时候,做啥都失败
    帮助开发人员学习
    python中的__dict__,__getattr__,__setattr__
    NetCore在Docker中发布及运行
    ELK基础配置
    IdentityServer4 手动验签及日志记录
  • 原文地址:https://www.cnblogs.com/yudongxuan/p/7700490.html
Copyright © 2011-2022 走看看