55 lines
1.0 KiB
C
55 lines
1.0 KiB
C
/*******************************************************************************
|
||
*
|
||
*
|
||
* File: tau_queue.h
|
||
* Description tau 队列操作
|
||
* 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;
|
||
|
||
//申请node
|
||
node *tau_new_node(void *data);
|
||
//释放node
|
||
void tau_free_node(node *qn);
|
||
//申请队列
|
||
tau_queue_t *tau_new_queue(int max_size);
|
||
//释放队列
|
||
void tau_free_queue(tau_queue_t *q);
|
||
//入列 返回0 为失败,1为成功
|
||
int tau_queue_push(tau_queue_t *q, void *data);
|
||
//出列
|
||
void *tau_queue_pop(tau_queue_t *q);
|
||
//获取队列size
|
||
int tau_queue_size(tau_queue_t *q);
|
||
//检查队列是否为空
|
||
int tau_queue_empty(tau_queue_t *q);
|
||
//检查队列是否满了
|
||
int tau_queue_full(tau_queue_t *q);
|
||
|
||
|
||
|
||
#endif
|
||
|