[数据结构]环形队列

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

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

相关推荐
努力长头发的程序猿36 分钟前
Unity2D当中的A*寻路算法
算法·unity·c#
Raink老师2 小时前
用100道题拿下你的算法面试(矩阵篇-2):求转置矩阵
算法·面试·矩阵
苏瞳儿5 小时前
java对数据库的增删改查
java·数据库·oracle
zhangjw345 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
算法鑫探8 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin5211238 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
WBluuue8 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
NotFound4868 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
木子墨5168 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
2501_921960859 小时前
双相自指图与弦论边界非对易性的结构同源
数据结构