mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-04 08:06:52 +08:00
edge添加边代码修改
This commit is contained in:
parent
628df4c1a0
commit
c3ed2ab00d
30
src/graph.c
30
src/graph.c
@ -628,18 +628,6 @@ static bool graph_add_edge(struct _graph* self, void* from, void* to, uint32_t w
|
|||||||
// add edge
|
// add edge
|
||||||
if (from_node->edge == NULL)
|
if (from_node->edge == NULL)
|
||||||
{
|
{
|
||||||
from_node->edge = graph_edge_new();
|
|
||||||
if (from_node->edge == NULL)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
from_node->edge->weight = weight;
|
|
||||||
from_node->edge->target = to_node;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
struct _graph_edge* next_edge = from_node->edge->next;
|
|
||||||
struct _graph_edge* pre_edge = NULL;
|
|
||||||
struct _graph_edge* new_edge = graph_edge_new();
|
struct _graph_edge* new_edge = graph_edge_new();
|
||||||
if (new_edge == NULL)
|
if (new_edge == NULL)
|
||||||
{
|
{
|
||||||
@ -648,7 +636,19 @@ static bool graph_add_edge(struct _graph* self, void* from, void* to, uint32_t w
|
|||||||
new_edge->weight = weight;
|
new_edge->weight = weight;
|
||||||
new_edge->target = to_node;
|
new_edge->target = to_node;
|
||||||
|
|
||||||
new_edge->next = next_edge;
|
from_node->edge = new_edge;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
struct _graph_edge* new_edge = graph_edge_new();
|
||||||
|
if (new_edge == NULL)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
new_edge->weight = weight;
|
||||||
|
new_edge->target = to_node;
|
||||||
|
|
||||||
|
new_edge->next = from_node->edge->next;
|
||||||
from_node->edge->next = new_edge;
|
from_node->edge->next = new_edge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -665,8 +665,6 @@ static bool graph_add_edge(struct _graph* self, void* from, void* to, uint32_t w
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct _graph_edge* next_edge = to_node->edge->next;
|
|
||||||
struct _graph_edge* pre_edge = NULL;
|
|
||||||
struct _graph_edge* new_edge = graph_edge_new();
|
struct _graph_edge* new_edge = graph_edge_new();
|
||||||
if (new_edge == NULL)
|
if (new_edge == NULL)
|
||||||
{
|
{
|
||||||
@ -675,7 +673,7 @@ static bool graph_add_edge(struct _graph* self, void* from, void* to, uint32_t w
|
|||||||
new_edge->weight = weight;
|
new_edge->weight = weight;
|
||||||
new_edge->target = from_node;
|
new_edge->target = from_node;
|
||||||
|
|
||||||
new_edge->next = next_edge;
|
new_edge->next = to_node->edge->next;
|
||||||
to_node->edge->next = new_edge;
|
to_node->edge->next = new_edge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user