请求队列相关函数修改

修改了部分函数的定义
This commit is contained in:
2022-05-18 18:44:21 +08:00
parent 6d97591b1d
commit ced5f41220
8 changed files with 129 additions and 67 deletions

View File

@@ -21,6 +21,11 @@ struct bus {
*/
typedef struct bus bus_t;
/**
* 全局的公交车变量
*/
extern bus_t the_bus;
/**
* 每个时刻使公交车前进
* @param rails 轨道链表
@@ -28,6 +33,6 @@ typedef struct bus bus_t;
* @param bus 公交车
* @return 公交车是否到达站点
*/
int RunBus(rail_node_t* rails, bus_t bus, int direction);
int RunBus(int direction);
#endif //AUTO_PILOT_BUS_BUS_H

View File

@@ -10,66 +10,20 @@
#include "query.h"
#include "bus.h"
/**
* 全局的时间计数器
*/
extern int BUS_TIME;
/**
* 当前正在处理的请求
*/
extern bus_query_t *target_query;
/**
* 时间增加
*/
void AddTime();
/**
* 在先来先服务策略下应该前进的方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int FCFSDirection(bus_t bus, bus_query_t queries);
int FCFSDirection();
/**
* 在先来先服务策略下给出处理的请求
* @param bus 公交车
* @param queries 请求队列链表
* @return 需要处理的请求
*/
bus_query_t FCFSQuery(bus_t bus, bus_query_t queries);
/**
* 在最短寻找时间策略下应该前进的方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int SSTFDirection(bus_t bus, bus_query_t queries);
/**
* 在最短寻找时间策略给出处理的请求
* @param bus 公交车
* @param queries 请求队列链表
* @return 需要处理的请求
*/
bus_query_t SSTFQuery(bus_t bus, bus_query_t queries);
/**
* 顺便服务的前进方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int SCANDirection(bus_t bus, bus_query_t queries);
/**
* 顺便服务的策略处理
* @param bus 公交车
* @param queries 请求队列链表
* @return 需要处理的请求
*/
bus_query_t SCANQuery(bus_t bus, bus_query_t queries);
bus_query_t FCFSQuery();
#endif //AUTO_PILOT_BUS_CONTROLLER_H

View File

@@ -19,30 +19,37 @@ struct bus_query {
/**
* 请求产生/指向的站点
*/
rail_node_t node;
rail_node_t *node;
/**
* 指向下一个请求的指针
*/
struct bus_query *next_node;
};
typedef struct bus_query bus_query_t;
/**
* 创建请求
* @param query 请求链表队列
* 全局的请求链表头节点
*/
extern bus_query_t *queries;
/**
* 创建请求链表节点
* @param type 请求的类型
* @param node 请求产生/指向的站点
*/
void CreateQuery(bus_query_t query, int type, rail_node_t node);
bus_query_t *CreateQuery(int type, rail_node_t *node);
/**
* 删除请求
* @param query 请求链表队列
* @param target_query 需要删除的请求
*/
void DeleteQuery(bus_query_t query, bus_query_t target_query);
void DeleteQuery(bus_query_t *target_query);
/**
* 释放请求链表占据的空间
* @param queries 请求链表的头节点
* @param head 请求链表的头节点
*/
void FreeQueries(bus_query_t queries);
void FreeQueries(bus_query_t *head);
#endif //AUTO_PILOT_BUS_QUERY_H

View File

@@ -35,6 +35,11 @@ typedef struct rail_node rail_node_t;
*/
extern rail_node_t *rails;
/**
* 全局的计时器
*/
extern int bus_time;
/**
* 查找指定编号的站点指针
* @param head 轨道的头节点地址
@@ -55,8 +60,10 @@ rail_node_t *CreateRails(int length, int node_num);
* 释放分配的内存空间
* @param railNode 轨道链表的头节点
*/
void FreeRails(rail_node_t railNode);
int add(int a, int b);
void FreeRails(rail_node_t *head);
/**
* 时间走过一秒
*/
void AddTime();
#endif //AUTO_PILOT_BUS_RAIL_H