如何递归求出从根节点出发的每一条分支线上的所有节点(有先后顺序,除去返回父节点的节点)

kel kel 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
假设有一个节点关系数组如下:
$allnode = array
(
'0' => array
(
'from' => 3349,
'to' => 3350
),

'1' => array
(
'from' => 3349,
'to' => 3352
),

'2' => array
(
'from' => 3350,
'to' => 3622
),

'3' => array
(
'from' => 3351,
'to' => 3623
),

'4' => array
(
'from' => 3352,
'to' => 3628
),

'5' => array
(
'from' => 3353,
'to' => 3631
),

'6' => array
(
'from' => 3354,
'to' => 3355
),

'7' => array
(
'from' => 3355,
'to' => 3356
),

'8' => array
(
'from' => 3622,
'to' => 3350
),

'9' => array
(
'from' => 3622,
'to' => 3351
),

'10' => array
(
'from' => 3622,
'to' => 4346
),

'11' => array
(
'from' => 3623,
'to' => 3351
),

'12' => array
(
'from' => 3623,
'to' => 3352
),

'13' => array
(
'from' => 3628,
'to' => 3352
),

'14' => array
(
'from' => 3628,
'to' => 3353
),

'15' => array
(
'from' => 3631,
'to' => 3353
),

'16' => array
(
'from' => 3631,
'to' => 3354
),

'17' => array
(
'from' => 4346,
'to' => 4347
),

'18' => array
(
'from' => 4347,
'to' => 3352
),

'19' => array
(
'from' => 4347,
'to' => 4346
)

);
$node_rows = array();
$node_from = array();
$flow_branch = array();//每一条分支上的节点
$first_id = 3349;//起始节点
function getBranch($next_id){
global $node_rows,$node_from,$allnode;
array_push($node_from, $next_id);
foreach($allnode as $key1=>$arr){
if($arr['from'] == $next_id){
if(!in_array($arr['to'],$node_from)){
array_push($node_rows,$arr['to']);
getBranch($arr['to']);
}
}
}
return $node_rows;
}

foreach($allnode as $key2=>$arr2){
if($first_id == $arr2['from']){
$node_rows = array($first_id,$arr2['to']);
$node_from = array();
$next_row = getBranch($arr2['to']);
if(!in_array($next_row,$flow_branch)){
$flow_branch[] = $next_row;
}
}
}
print_r($flow_branch);
这样只求出了从起点分叉的分支节点,没求出从中间分叉的节点。
...全文

相关推荐

springboot524基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf.zip

springboot524基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf

达达KZT

树形结构中反向遍历以获取父节点路径的方法

在计算机科学中,树是一种被广泛采用的数据结构,它模拟了具有层级关系的对象的层次结构。树由节点组成,每个节点都包含值和指向其他节点的指针。在树结构中,最顶层的节点被称为根节点。树中的每个节点可以有零个或多个子节点,这些子节点被称作父节点的“子节点”。- 父节点:在树形结构中,如果节点A是节点B的前驱节点,则称A为B的父节点(或上层节点)。- 子节点:在树形结构中,如果节点A是节点B的后继节点,则称A为B的子节点(或下层节点)。对于树结构的深入理解,首先需要掌握的是如何定义和描述节点之间的父子关系。

綾音Ayane

springboot524基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf(文档+源码)_kaic.zip

计算机毕业设计

码上星辰

【计算机网页程序设计项目源码】524基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf.zip

具体系统介绍看我的博客空间 搜索对应的题目,本代码适合学习java 网页代码如自己能力有限 运行不出来,可以联系作者购买人工远程调试服务 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训。

翰文编程

带论文和PPTspringboot524基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf.zip

java本人亲自运行,所有项目都有运行视频,有问题看我主页!

软件定制毕业软考事业编国企公务员
评论 6
收藏 已收藏
分享
返回顶部
kel
基础编程 21,889 成员 140,329 内容