[数据结构]环形队列

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

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进行缓冲数据实验

相关推荐
海的诗篇_3 分钟前
移除元素-JavaScript【算法学习day.04】
javascript·学习·算法
勤奋的知更鸟9 分钟前
Java编程之原型模式
java·开发语言·原型模式
自动驾驶小卡14 分钟前
A*算法实现原理以及实现步骤(C++)
算法
Unpredictable22215 分钟前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
编程绿豆侠16 分钟前
力扣HOT100之多维动态规划:1143. 最长公共子序列
算法·leetcode·动态规划
叶 落19 分钟前
[Java 基础]数组
java·java 基础
KK溜了溜了20 分钟前
JAVA-springboot log日志
java·spring boot·logback
珂朵莉MM22 分钟前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
香蕉炒肉37 分钟前
Java优化:双重for循环
java·开发语言
黄雪超1 小时前
JVM——打开JVM后门的钥匙:反射机制
java·开发语言·jvm