队列遵循先进先出,那么其实跟链表的尾插就类似的,正好,利用这个特性,可以实现一个简单的等待队列程序软件框架,设计这条队列时,我们依然还是会使用头节点这个东西,但是它在队列中只是存储关键数据,并不是真正意义上的节点,可以将它忽略。
这个等待队列可以设计为以下数据结构:工作者结构+基本队列链式结构
所以可以设计出以下结构体:
//工作者结构
typedef struct __work_st
{
//工作者编号
int work_serial_num;
//工作者执行操作
void (*queue_st)();
}work_st ;
//队列结构体实现
typedef struct queue_st
{
work_st work_queue ;
//队列的最大长度
int queue_max_length ;
//队列的实际长度
int queue_length ;
//队列是否为空的标志
int Null_flag ;
//队列是否为满的标志
int Full_flag ;
//指向下一个队列节点
struct queue_st *next ;
}queue_list;