queque.c

来自「队列操作」· C语言 代码 · 共 58 行

C
58
字号
/****************************************
	   Name: Queue.c
	   Descript:基本队列操作
	   Author:LMS
	   Date:2002/12/19
*****************************************/
#include"pub.h"
         
// Public Function
// Init Queque
uchar Queue_Init(struct Sys_RD_Queue_Struct *inque,int length)
{
    inque->Len=length;
    inque->Wr=0;
    inque->Rp=0;
    inque->Sta = EMPTY;          
    inque->elements=malloc(length);
	if(inque->elements!=NULL)
		return(OK);
	return(ERROR);
}                               

// Queque Put
uchar  Queue_Put(uchar indata,struct Sys_RD_Queue_Struct *inque)  
{
	if(inque->Sta==FULL)
	     return(ERROR) ;
    inque->elements[inque->Wr++]=indata;
    if(inque->Wr==inque->Len)   
		inque->Wr=0;
    if(inque->Wr==inque->Rp)
    	inque->Sta=FULL;    
    else
    	inque->Sta=NORMAL;
    return(OK);
}

// Queque Get
uchar Queue_Get(struct Sys_RD_Queue_Struct  *inque, uchar *out_addr) 
{
    if(inque->Sta==EMPTY)
        return(ERROR) ;
    *out_addr=inque->elements[inque->Rp++];     
   	if(inque->Rp==inque->Len)
   		 inque->Rp=0;
    if(inque->Rp==inque->Wr)
		inque->Sta=EMPTY;
    else
		inque->Sta=NORMAL;
    return(OK);
}

// Queque Status Get
uchar Queque_Status(struct Sys_RD_Queue_Struct *inque) 
{
	return(inque->Sta);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?