zoukankan      html  css  js  c++  java
  • C语言循环队列

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    //循环队列
    
    typedef struct {
        int *data;//数据域
        int maxsize;//最大长度
        int rear, front;//队尾,队头
    } CirQueue;
    
    void InitCirQueue(CirQueue *q, int max) {//初始化
        q->maxsize = max;
        q->data = (int*)malloc(sizeof(int)*max);//动态分配内存空间
        q->rear = 0;
        q->front = 0;
    }
    
    int CirQueueisEmpty(CirQueue *q) {//判空
        if (q->front == q->rear)//队头==队尾
            return 0;
        else {
            return 1;
        }
    }
    
    int CirQueueisFull(CirQueue *q) {//判满
        if (q->front == (q->rear + 1) % (q->maxsize)) {//预留最后一个空间来做取余
            return 0;
        } else {
            return 1;
        }
    }
    
    void AddCirQueue(CirQueue *q, int x) {//添加
        q->data[q->rear] = x;
        q->rear = (q->rear + 1) % (q->maxsize);//超过最大长度添加则覆盖
    }
    
    int CirQueueDisplay(CirQueue *q) {// 显示
        int x;
        x = q->data[q->front];
        q->front = (q->front + 1) % (q->maxsize);//移动队头
        return x;
    }
    int CirQueueFront(CirQueue *q) {//取队头
        int  x = q->data[q->rear];
        return x;
    }
    
    int main() {
        CirQueue q;
        InitCirQueue(&q, 5);
    
        AddCirQueue(&q, 1);
        AddCirQueue(&q, 2);
        AddCirQueue(&q, 5);
    
        printf("%d ",CirQueueDisplay(&q));
        printf("%d ",CirQueueDisplay(&q));
        printf("%d ",CirQueueDisplay(&q));
        return 0;
    }

    让我们一起遨游编程的海洋。

  • 相关阅读:
    ios app ipv6 审核总结
    组织、结构与部分、整体
    组织
    Makefile 使用总结
    Make 命令教程
    Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
    如何从一个服务器拷文件到另一个服务器
    vi的常用命令
    linux下yum命令出现Loaded plugins: fastestmirror
    YUM常用命令介绍
  • 原文地址:https://www.cnblogs.com/hardhp74520/p/11759839.html
Copyright © 2011-2022 走看看