精易论坛
标题:
JS代码转易语言 一个函数
[打印本页]
作者:
戲子Ⅹ唱無情
时间:
2023-11-30 14:15
标题:
JS代码转易语言 一个函数
function
findPath
(
graph, start, end, path =
[
]
, visited = new
Set
(
)
)
{
path.
push
(
start
)
;
visited.
add
(
start
)
;
if
(
start === end
)
{
return path.
join
(
' -> '
)
;
}
const neighbors = graph
[
start
]
;
/* console.
log
(
' 4:',neighbors,start
)
;*/
if
(
neighbors
)
{
for
(
const neighbor of neighbors
)
{
if
(
!visited.
has
(
neighbor
)
)
{
findPath
(
graph, neighbor, end, path.
slice
(
)
, visited
)
;
}
}
}
}
function findPath(graph, start, end, path = [], visited = new Set()) {
path.push(start);
visited.add(start);
if (start === end) {
return path.join(' -> ');
}
const neighbors = graph[start];
/* console.log('4:',neighbors,start);*/
if (neighbors) {
for (const neighbor of neighbors) {
if (!visited.has(neighbor)) {
findPath(graph, neighbor, end, path.slice(), visited);
}
}
}
}
这个是否能转成易语言的,path = [], visited = new Set() 主要是这另个, 最后个参数我用个程序集变量代替,一样实现不了
作者:
承易
时间:
2023-11-30 15:46
这段代码是一个递归函数,用于在给定的图(graph)中查找从起始节点(start)到目标节点(end)的路径。它使用了深度优先搜索算法来遍历图。
函数的参数如下:
graph:表示图的数据结构,通常是一个对象或数组,其中键或索引表示节点,值表示与该节点相邻的节点列表。
start:起始节点。
end:目标节点。
path:一个可选参数,用于存储当前路径上的节点。默认为空数组。
visited:一个可选参数,用于存储已访问过的节点。默认为一个新的 Set 对象。
函数的工作原理如下:
将起始节点添加到路径和已访问集合中。
如果起始节点等于目标节点,说明已经找到了一条路径,返回路径字符串,路径中的节点用 ' -> ' 连接。
获取起始节点的邻居节点列表。
如果邻居节点列表存在,遍历每个邻居节点。
如果邻居节点没有被访问过,递归调用 findPath 函数,传入邻居节点作为新的起始节点,同时传递当前路径和已访问集合的副本。
如果在遍历过程中没有找到目标节点,函数将返回 undefined。
需要注意的是,这段代码只返回了第一个找到的路径,而不是所有可能的路径。如果需要找到所有路径,可以对代码进行修改,使用回溯法或其他方法来记录所有可能的路径。
作者:
戲子Ⅹ唱無情
时间:
2023-11-30 15:53
承易 发表于 2023-11-30 15:46
这段代码是一个递归函数,用于在给定的图(graph)中查找从起始节点(start)到目标节点(end)的路径。它 ...
path:一个可选参数,用于存储当前路径上的节点。默认为空数组。
这个再易语言里 他没办法无限动态重建啊
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4