二人接力队列

南北湖创客7个月前代码基础5

图片.png


一般循环队列的属性如下:

    elements\textit{elements}elements:一个固定大小的数组,用于保存循环队列的元素。
    capacity\textit{capacity}capacity:循环队列的容量,即队列中最多可以容纳的元素数量。
    front\textit{front}front:队列首元素对应的数组的索引。
    rear\textit{rear}rear:队列尾元素对应的索引的下一个索引。

一般循环队列的接口方法如下:

    MyCircularQueue(int k)\texttt{MyCircularQueue(int k)}MyCircularQueue(int k): 


    enQueue(int value)\texttt{enQueue(int value)}enQueue(int value):

(rear+1) mod capacity(\textit{rear} + 1) \bmod capacity(rear+1)modcapacity。


    deQueue()\texttt{deQueue()}deQueue():

(front+1) mod capacity(\textit{front} + 1) \bmod capacity(front+1)modcapacity。


    Front()\texttt{Front()}Front():返回队首的元素,需要检测队列是否为空。
    Rear()\texttt{Rear()}Rear():返回队尾的元素,需要检测队列是否为空。
    isEmpty()\texttt{isEmpty()}isEmpty():检测队列是否为空,根据之前的定义只需判断 rear\textit{rear}rear 是否等于 front\textit{front}front。
    isFull()\texttt{isFull()}isFull():检测队列是否已满,根据之前的定义只需判断 front\textit{front}front 是否等于 (rear+1) mod capacity(\textit{rear} + 1) \bmod \textit{capacity}(rear+1)modcapacity。

个人二人接力工作队列属性:


#define CHNUM1 0
#define CHNUM2 1
#define CHNUM3 2


int oneChannelMark;
int twoChannelMark;


个人二人接力工作队列接口方法:

//发送小人是否做完,可交给发送

int transferSame(int send,int recv)
{
    if(send == recv)
        return 1;
    else
        return 0;
}

//发送小人切换状态,开始工作
void transferCh(int send,int *recv)
{
    if(transferSame(send,*recv))
    {
        if((*recv)==CHWORK1)
            (*recv)=CHWORK2;
        else
            (*recv)=CHWORK1;
        return 1;// Calculate at the same
    }
    else
    {
        return 0;
    }

}



返回列表

上一篇:调频机组原理

下一篇:MPU的使用

相关文章

incompatible type argument

 Error[Pe167]: argument of type "void (*)(void const *)" is incompatible with paramet...

动态规划

是一种算法设计技巧,用于解决具有重叠子问题和最优子结构的问题。#include <stdio.h>// 动态规划解决斐波那契数列int fibonacci(int n) {&nb...

DSP的三角函数(\Embedded Workbench 9.0\arm\CMSIS\DSP)

1、主要代码在BasicMathFunctions文件夹2、主要例子在arm_sin_cos_example文件夹3、arm_sin_cos_example_f32文件4、先总结网上的DSP说法FPU...

stm32的代码和内存管理(SRAM空间)

stm32的代码和内存管理(SRAM空间)

SRAM空间1、文件中声明和定义(全局变量、静态数据和常量)从0x20000000开始,到堆的起始地址(堆是向上的)。2、HEAP区;(堆是向上的)3、STACK区。(栈是向下的)堆区(heap):一...

HAL_TIM_Base_Start_IT

HAL_TIM_Base_Start_IT这两个中断开启函数使用时会立即进入一次中断回调HAL_TIM_Base_Start_IT(&htim2);//即使下一行加上HAL_TIM_Base_...

延时函数(阻塞式,非阻塞式)

常规阻塞式延时:void delay_1ms(uint32_t count){    delay = count;    delay--;&...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。