APP_Framework/lib/:add queue lib
This commit is contained in:
parent
af345b75fb
commit
6f9be6d790
|
@ -11,4 +11,5 @@ menu "lib"
|
|||
bool "app select other lib"
|
||||
endchoice
|
||||
source "$APP_DIR/lib/cJSON/Kconfig"
|
||||
source "$APP_DIR/lib/queue/Kconfig"
|
||||
endmenu
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
menuconfig LIB_USING_QUEUE
|
||||
bool "USING QUEUE"
|
||||
default n
|
|
@ -0,0 +1,10 @@
|
|||
from building import *
|
||||
import os
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
|
||||
src = Glob('*.c')
|
||||
|
||||
group = DefineGroup('queue', src, depend = ['LIB_USING_QUEUE'], CPPPATH = [cwd])
|
||||
|
||||
Return('group')
|
|
@ -0,0 +1,59 @@
|
|||
#include <queue.h>
|
||||
Status InitQueue(SqQueue *Q)
|
||||
{
|
||||
Q->front=0;
|
||||
Q->rear=0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
Status ClearQueue(SqQueue *Q)
|
||||
{
|
||||
Q->front=Q->rear=0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
Status QueueEmpty(SqQueue *Q)
|
||||
{
|
||||
if(Q->front==Q->rear)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
int QueueLength(SqQueue *Q)
|
||||
{
|
||||
return (Q->rear-Q->front+MAXSIZE)%MAXSIZE;
|
||||
}
|
||||
|
||||
|
||||
Status GetHead(SqQueue *Q,QElemType *e)
|
||||
{
|
||||
if(Q->front==Q->rear)
|
||||
return ERROR;
|
||||
*e=Q->data[Q->front];
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
Status EnQueue(SqQueue *Q,QElemType e)
|
||||
{
|
||||
if ((Q->rear+1)%MAXSIZE == Q->front)
|
||||
return ERROR;
|
||||
Q->data[Q->rear]=e;
|
||||
Q->rear=(Q->rear+1)%MAXSIZE;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
Status DeQueue(SqQueue *Q,QElemType *e)
|
||||
{
|
||||
if (Q->front == Q->rear)
|
||||
return ERROR;
|
||||
*e=Q->data[Q->front];
|
||||
Q->front=(Q->front+1)%MAXSIZE;
|
||||
return OK;
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef __QUEUE_H__
|
||||
#define __QUEUE_H__
|
||||
#include <stdio.h>
|
||||
#define OK 1
|
||||
#define ERROR 0
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define MAXSIZE 1024
|
||||
|
||||
typedef int Status;
|
||||
typedef int QElemType;
|
||||
typedef struct
|
||||
{
|
||||
int data[MAXSIZE];
|
||||
int front;
|
||||
int rear;
|
||||
}SqQueue;
|
||||
|
||||
Status InitQueue(SqQueue *Q);
|
||||
Status ClearQueue(SqQueue *Q);
|
||||
Status QueueEmpty(SqQueue *Q);
|
||||
Status GetHead(SqQueue *Q,QElemType *e);
|
||||
Status EnQueue(SqQueue *Q,QElemType e);
|
||||
Status DeQueue(SqQueue *Q,QElemType *e);
|
||||
int QueueLength(SqQueue *Q);
|
||||
#endif
|
Loading…
Reference in New Issue