55 lines
1.0 KiB
C
55 lines
1.0 KiB
C
|
/*******************************************************************************
|
|||
|
*
|
|||
|
*
|
|||
|
* File: tau_queue.h
|
|||
|
* Description tau <EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Version V0.1
|
|||
|
* Date 2021-02-25
|
|||
|
* Author lzy
|
|||
|
*******************************************************************************/
|
|||
|
#ifndef _TAU_QUEUE_H
|
|||
|
#define _TAU_QUEUE_H
|
|||
|
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
|
|||
|
typedef struct node_t
|
|||
|
{
|
|||
|
void *data;
|
|||
|
struct node_t *next;
|
|||
|
} node_t;
|
|||
|
|
|||
|
typedef node_t node;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
node *next;
|
|||
|
node *tail;
|
|||
|
int count;
|
|||
|
int max_size;
|
|||
|
} tau_queue_t;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>node
|
|||
|
node *tau_new_node(void *data);
|
|||
|
//<2F>ͷ<EFBFBD>node
|
|||
|
void tau_free_node(node *qn);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
tau_queue_t *tau_new_queue(int max_size);
|
|||
|
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
|
|||
|
void tau_free_queue(tau_queue_t *q);
|
|||
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>0 Ϊʧ<CEAA>ܣ<EFBFBD>1Ϊ<31>ɹ<EFBFBD>
|
|||
|
int tau_queue_push(tau_queue_t *q, void *data);
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
void *tau_queue_pop(tau_queue_t *q);
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>size
|
|||
|
int tau_queue_size(tau_queue_t *q);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
|
|||
|
int tau_queue_empty(tau_queue_t *q);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int tau_queue_full(tau_queue_t *q);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|