添加边 - AddEdge
函数简介
向指定的图中添加一条边,支持有向边和无向边,可以设置边的权重。
接口名称
AddEdge
DLL调用
int32_t AddEdge(int64_t instance, int64_t graphPtr, char* from, char* to,
double weight, bool isDirected);
参数说明
参数名 | 类型 | 说明 |
---|---|---|
instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
graphPtr | 长整数型 | 图的指针,由CreateGraph接口返回 |
from | 字符串 | 边的起点节点名称 |
to | 字符串 | 边的终点节点名称 |
weight | 双精度 | 边的权重,用于最短路径计算,当权重为0时删除对应边 |
isDirected | 布尔型 | 是否为有向边,true表示有向边,false表示无向边 |
示例
// 创建OLA实例
int64_t instance = CreateCOLAPlugInterFace();
// 创建图
int64_t graphPtr = CreateGraph(instance, "");
// 添加有向边 A->B,权重为1.0
int32_t result1 = AddEdge(instance, graphPtr, "A", "B", 1.0, true);
// 添加无向边 B-C,权重为2.0
int32_t result2 = AddEdge(instance, graphPtr, "B", "C", 2.0, false);
if (result1 == 1 && result2 == 1) {
printf("边添加成功\n");
} else {
printf("边添加失败\n");
}
// 释放资源
DeleteGraph(instance, graphPtr);
DestroyCOLAPlugInterFace(instance);
返回值
成功返回1,失败返回0。
注意事项
- 确保from和to节点在图中存在
- 权重值应为正数,用于最短路径计算
- 有向边只允许从from到to的方向,无向边允许双向通行
- 重复添加相同的边可能会覆盖之前的权重设置