[数据结构]环形队列

实现环形队列,实现入队出队操作:

cpp 复制代码
#include <stdio.h>

#define MAXSIZE 10

int enterqueue(int* array, int);

void printQueue();


int front = 0, rear = 0;
int main(void) {
    int arr[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };

    printQueue(&arr);
    enterqueue(&arr, 10);
    printQueue(&arr);
    enterqueue(&arr, 20);
    printQueue(&arr);
    enterqueue(&arr, 30);
    printQueue(&arr);
    enterqueue(&arr, 40);
    printQueue(&arr);
    enterqueue(&arr, 50);
    printQueue(&arr);
    enterqueue(&arr, 60);
    printQueue(&arr);
    enterqueue(&arr, 70);
    printQueue(&arr);
    enterqueue(&arr, 80);
    printQueue(&arr);
    enterqueue(&arr, 90);
    printQueue(&arr);


    exitQueue(&arr);
    printQueue(&arr);
    exitQueue(&arr);
    printQueue(&arr);
    exitQueue(&arr);
    printQueue(&arr);
    exitQueue(&arr);
    printQueue(&arr);

    enterqueue(&arr, 100);
    printQueue(&arr);
    enterqueue(&arr, 110);
    printQueue(&arr);

    printf("Hello World\n");
    return 0;
}

/*入队函数*/
int enterqueue(int* array, int value) {
    /*判断是否队满*/
    if ((rear + 1) % MAXSIZE == front) {
        printf("队满\r\n");
        return 0;
    }

    rear = (rear + 1) % MAXSIZE;//rear指向下一位
    array[rear] = value;

    return 0;
}

/*出队函数*/
int exitQueue(int* array) {
    if (rear == front) {
        printf("队空\r\n");
        return 0;
    }
    int temp = 0;
    front = (front + 1) % MAXSIZE;
    temp = array[front];
    array[front] = -1;

    return temp;
}


void printQueue(int* array) {

    for (int k = 0; k < 10; k++) {

        printf("arr[%d]=%d\r\n", k, *(array+k));
    }
    printf("\r\n");

}

进一步使用stm32进行缓冲数据实验

相关推荐
mzlogin5 分钟前
Java|FreeMarker 复用 layout
java·后端·freemarker
007php0077 分钟前
Go 语言常用命令使用与总结
java·linux·服务器·前端·数据库·docker·容器
爱笑的源码基地10 分钟前
智慧工地源码
java·人工智能·物联网·spring cloud·源码·智慧工地·数字工地
用户48221371677512 分钟前
C++——模板(工作中建议不要主动写)
算法
计算机程序员小杨18 分钟前
计算机毕设选题:电子商务供应链大数据分析系统Python+Django技术实现详解|毕设|计算机毕设|程序开发|项目实战
java·vue.js·python
AAA修煤气灶刘哥19 分钟前
别再懵注解!从 JDK 到 SpringBoot,这篇 “代码贴标签” 攻略超下饭
java·后端·代码规范
ZCollapsar.21 分钟前
数据结构 02(线性:顺序表)
c语言·数据结构·学习·算法
君万35 分钟前
【LeetCode每日一题】234.回文链表
算法·leetcode·链表·golang
地平线开发者40 分钟前
地平线具身智能算法H-RDT斩获CVPR 2025 RoboTwin真机赛冠军
算法·自动驾驶
fat house cat_1 小时前
【Spring底层分析】Spring AOP补充以及@Transactional注解的底层原理分析
java·后端·spring