我目前正在实施此处描述的算法(维基百科)。
本文描述了 2 个主要结构:
- 一个节点,包含一组边
- 一条边,包含一个指向目标节点的指针和一个标签
所以,目前我的 C 代码中有 2 个结构:radix_node_s
和radix_edge_s
typedef struct radix_node_s radix_node_t;
typedef struct radix_edge_s {
radix_node_t *target_node;
char *label;
SLIST_ENTRY(radix_edge_s) next;
} radix_edge_t;
struct radix_node_s {
SLIST_HEAD(radix_edge_list_s, radix_edge_s) edges;
void *data;
};
我想知道是否可以使边缘结构消失并将其包含与其目标节点合并。因此,边缘标签将是节点的新字段。
这是一个很好的方法还是我错过了什么?