开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 565|回复: 2
收起左侧

[求助] JS代码转易语言 一个函数

[复制链接]
结帖率:75% (12/16)
发表于 2023-11-30 14:15:12 | 显示全部楼层 |阅读模式   河南省洛阳市
  
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()  主要是这另个,  最后个参数我用个程序集变量代替,一样实现不了
结帖率:100% (10/10)
发表于 2023-11-30 15:46:41 | 显示全部楼层   山西省太原市
这段代码是一个递归函数,用于在给定的图(graph)中查找从起始节点(start)到目标节点(end)的路径。它使用了深度优先搜索算法来遍历图。

函数的参数如下:

graph:表示图的数据结构,通常是一个对象或数组,其中键或索引表示节点,值表示与该节点相邻的节点列表。
start:起始节点。
end:目标节点。
path:一个可选参数,用于存储当前路径上的节点。默认为空数组。
visited:一个可选参数,用于存储已访问过的节点。默认为一个新的 Set 对象。
函数的工作原理如下:

将起始节点添加到路径和已访问集合中。
如果起始节点等于目标节点,说明已经找到了一条路径,返回路径字符串,路径中的节点用 ' -> ' 连接。
获取起始节点的邻居节点列表。
如果邻居节点列表存在,遍历每个邻居节点。
如果邻居节点没有被访问过,递归调用 findPath 函数,传入邻居节点作为新的起始节点,同时传递当前路径和已访问集合的副本。
如果在遍历过程中没有找到目标节点,函数将返回 undefined。
需要注意的是,这段代码只返回了第一个找到的路径,而不是所有可能的路径。如果需要找到所有路径,可以对代码进行修改,使用回溯法或其他方法来记录所有可能的路径。
回复 支持 反对

使用道具 举报

结帖率:75% (12/16)
 楼主| 发表于 2023-11-30 15:53:52 | 显示全部楼层   河南省洛阳市
承易 发表于 2023-11-30 15:46
这段代码是一个递归函数,用于在给定的图(graph)中查找从起始节点(start)到目标节点(end)的路径。它 ...

path:一个可选参数,用于存储当前路径上的节点。默认为空数组。
这个再易语言里 他没办法无限动态重建啊
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表