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;
    }

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

  • 相关阅读:
    如何检索某个字段在sqlserver中的哪个些存储过程中?很简单的SQL语句。
    如何去掉HTML代码来获取纯文本?
    ajax实现跨域请求
    ajax实现跨域提交
    lab3
    Lab2
    hw2
    Homework1
    Lab1
    CS61B_学习计划和进程
  • 原文地址:https://www.cnblogs.com/hardhp74520/p/11759839.html
Copyright © 2011-2022 走看看