递归问题,在线等

【Help】 【Help】 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
using System;
using System.Data;
using System.Text;

namespace ConsoleApplication1
{
public class Program
{
/// <summary>
/// 获取模拟数据
/// </summary>
private static DataTable GetContent()
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Pid", typeof(int));
dt.Columns.Add("Name", typeof(string));


dt.Rows.Add(1, 0, "A");
dt.Rows.Add(2, 0, "B");
dt.Rows.Add(3, 1, "C");
dt.Rows.Add(4, 3, "D");
dt.Rows.Add(5, 2, "E");
dt.Rows.Add(6, 5, "F");
dt.Rows.Add(7, 3, "G");
return dt;
}

private static string Recursive(DataTable dt, DataRow row,out int id)
{
//查找是否有子节点
var rows = dt.Select("Pid=" + row["Id"]);
//如果有子节点,那么加上其全部的父节点
if (rows != null && rows.Length > 0)
{
foreach (var subrow in rows)
{
return row["Name"].ToString() + "==>" + Recursive(dt, subrow,out id);
}
}
id = Convert.ToInt32(row["Id"]);
return row["Name"].ToString();
}
static void Main(string[] args)
{
DataTable dt = GetContent();
int id = 0;

foreach (DataRow srow in dt.Select("Pid=0"))
{
Console.WriteLine("路径:"+Recursive(dt,srow,out id)+"\t最终子节点的Id:"+id);
}
}
}
}


这里输出的结果是:
路径:A==>C==>D 最终子节点的Id:4
路径:B==>E==>F 最终子节点的Id:6

我想要的结果是
路径:A==>C==>D 最终子节点的Id:4
路径:A==>C==>G 最终子节点的Id:7
路径:B==>E==>F 最终子节点的Id:6

应该怎么改,就大神看看
...全文

相关推荐

leetcode递归专题-programming_solutions:包含不同在线编程网站编程问题解决方案的存储库

该项目包含多种经典编程问题及在线平台(如LeetCode、Codility)的算法解决方案,涵盖全排列、二进制加法等典型题目,采用递归、回溯等技术,支持Java和JavaScript语言实现,旨在提升

weixin_38587473

基于贝叶斯推理的递归算法在线更新基于信念规则的管道泄漏检测专家系统

递归算法:递归算法是一类以自我调用方式运行的算法,通常用于解决问题,这些问题可以通过解决相似的子问题来解决。在本研究中,递归算法被用来持续地更新专家系统规则,以便于系统能够实时反映管道的状态。

weixin_38663452

javascript-leetcode面试题解递归与回溯问题之第59题递归矩阵-题解.zip

在JavaScript编程领域,LeetCode是一个非常重要的在线平台,它提供了大量的编程题目,帮助开发者提升算法能力和准备求职面试。

__AtYou__

行业分类-外包设计-基于递归在线算法的进程任务块可疑依赖关系的优化方法的说明分析.rar

递归在线算法在此起着至关重要的作用。递归算法是一种通过自我调用来解决问题的方法,而在线算法则是在数据逐步到达时进行处理,不预先知道所有输入的情况下作出决策。

mYlEaVeiSmVp

LeetCodeProblems:LeetCode问题通过递归,时间复杂度和动态编程解决

在IT领域,LeetCode是一个非常受欢迎的在线平台,它提供了大量的编程题目,旨在帮助开发者提升算法和数据结构技能。

唐荣轩
评论 9
收藏 已收藏
分享
返回顶部
【Help】
.NET社区 62,273 成员 668,968 内容