You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询递归DFS R代码示例所假设的图数据结构

递归DFS R代码对应的数据结构排查

那个递归DFS代码假设的是数值索引匹配节点编号的邻接表,你之前的实现问题出在节点标识类型和列表索引逻辑上,调整后就能正常运行:

正确的数据结构示例(节点从0开始)

如果原DFS函数支持0号节点,用无命名的列表,列表的索引对应节点编号:

graph <- list(
  c(1, 2),   # 节点0的邻接节点
  c(3, 4),   # 节点1的邻接节点
  c(5, 6),   # 节点2的邻接节点
  c(),       # 节点3的邻接节点
  c(),       # 节点4的邻接节点
  c(),       # 节点5的邻接节点
  c()        # 节点6的邻接节点
)

适配R默认索引的版本(节点从1开始)

由于R列表默认从1索引,多数基础DFS实现会用1起始的节点编号,对应结构如下:

graph <- list(
  c(2, 3),   # 节点1的邻接节点
  c(4, 5),   # 节点2的邻接节点
  c(6, 7),   # 节点3的邻接节点
  c(),
  c(),
  c(),
  c()
)

问题原因

你之前用字符串作为节点键名,但原DFS函数大概率是通过列表的位置索引访问邻接节点,而非键名匹配,导致字符命名的列表无法被正确遍历。如果要保留字符型节点,需要修改DFS函数中的节点查找逻辑,确保用键名而非索引访问列表元素。

内容的提问来源于stack exchange,提问作者Neal Oden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:09:28