请求队列相关函数修改
修改了部分函数的定义
This commit is contained in:
65
src/query.c
65
src/query.c
@@ -3,5 +3,70 @@
|
||||
//
|
||||
#include "query.h"
|
||||
|
||||
bus_query_t *queries = NULL;
|
||||
|
||||
bus_query_t *CreateQuery(int type, rail_node_t *node)
|
||||
{
|
||||
bus_query_t *p = (bus_query_t *)malloc(sizeof (bus_query_t));
|
||||
p->node = node;
|
||||
p->type = type;
|
||||
p->time = bus_time;
|
||||
p->next_node = NULL;
|
||||
|
||||
if(queries == NULL)
|
||||
{
|
||||
queries = p;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 寻找链表的末节点
|
||||
bus_query_t *last_node = queries;
|
||||
|
||||
while(last_node->next_node != NULL)
|
||||
{
|
||||
last_node = last_node->next_node;
|
||||
}
|
||||
|
||||
last_node->next_node = p;
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
void DeleteQuery(bus_query_t *target)
|
||||
{
|
||||
if(target == queries)
|
||||
{
|
||||
queries = target->next_node;
|
||||
}
|
||||
else
|
||||
{
|
||||
bus_query_t *node = queries;
|
||||
|
||||
// 找到被删除节点的上一个节点
|
||||
while(node->next_node != target)
|
||||
{
|
||||
node = node->next_node;
|
||||
}
|
||||
|
||||
node->next_node = target->next_node;
|
||||
}
|
||||
|
||||
free(target);
|
||||
}
|
||||
|
||||
void FreeQueries(bus_query_t *head)
|
||||
{
|
||||
bus_query_t *p = head;
|
||||
|
||||
while (p != NULL)
|
||||
{
|
||||
bus_query_t *temp = p;
|
||||
p = p->next_node;
|
||||
free(temp);
|
||||
}
|
||||
|
||||
// 将全局的请求列表头指针置为空
|
||||
queries = NULL;
|
||||
}
|
||||
|
||||
|
26
src/rail.c
26
src/rail.c
@@ -1,11 +1,7 @@
|
||||
#include "rail.h"
|
||||
|
||||
rail_node_t *rails = NULL;
|
||||
|
||||
int add(int a, int b)
|
||||
{
|
||||
return a+ b;
|
||||
}
|
||||
int bus_time = 0;
|
||||
|
||||
rail_node_t *CreateRails(int length, int node_num)
|
||||
{
|
||||
@@ -63,3 +59,23 @@ rail_node_t *FindNode(rail_node_t *head, int id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void FreeRails(rail_node_t *head)
|
||||
{
|
||||
rail_node_t *p = head;
|
||||
|
||||
while (p != NULL)
|
||||
{
|
||||
rail_node_t *temp = p;
|
||||
p = p->next_node;
|
||||
free(temp);
|
||||
}
|
||||
|
||||
// 将全局的轨道指针置为空
|
||||
rails = NULL;
|
||||
}
|
||||
|
||||
void AddTime()
|
||||
{
|
||||
bus_time++;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user