void EnQueue(struct DynArrayQueue *Q, struct BinaryTreeNode *data){
    if(IsFullQueue(Q))
        ResizeQueue(Q);
    Q->rear = (Q->rear + 1) % Q->capacity;
    Q->array[Q->rear] = data;
    if(Q->front == -1)
        Q->front = Q->rear;
}
Example #2
0
File: NiceP.C Project: sidpka/repo
void EnQueue(QNode* queue,int data){
if(IsFullQueue(queue)){
ResizeQueue(queue);
}else{

queue->rear=(queue->rear+1)%queue->capacity;
queue->Array[queue->rear]=data;
if(queue->front==-1){
queue->front=queue->rear;
}
}
}
Example #3
0
void EnQueue(QNode* queue,char* data){
if(IsFullQueue(queue)){
return;
}else{

queue->rear=(queue->rear+1)%queue->capacity;
queue->Array[queue->rear]=data;
if(queue->front==-1){
queue->front=queue->rear;
}
}
}
Example #4
0
/*******************************************************************
函数功能: 将数据插入队列
入口参数: element:被插元素
返 回 值: 1: 成功; 0:失败
********************************************************************/
u8 InsertQueue(_CANQUEUE* canqueue,u16 CAN_ID,u8 Msg[8])
{
	CPU_SR_ALLOC();// 申请cpu_sr
	////
	CPU_CRITICAL_ENTER(); // 关键段,关闭全局中断,视具体情况添加此语句
    if(!IsFullQueue(canqueue))//是否为满
    {
		_CANMSG CANMsg;
		CANMsg.CAN_ID  = CAN_ID;
		memcpy(CANMsg.Msg,Msg,2*sizeof(Msg));
		memcpy(&canqueue->Elem[canqueue->rear],&CANMsg,sizeof(CANMsg));
		
        canqueue->rear = (canqueue->rear + 1) % MAX_CAN_QUEUE_SIZE;
		CPU_CRITICAL_EXIT(); // 退出关键段,开启全局中断,视具体情况添加此语句
        return 1;
    }
    else                       //队列满
    {
		CPU_CRITICAL_EXIT(); // 退出关键段,开启全局中断,视具体情况添加此语句
        return 0;
    }
}