⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queque.c

📁 队列操作
💻 C
字号:
/****************************************
	   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -