永发信息网

C#递归建树方法

答案:3  悬赏:60  手机版
解决时间 2021-01-24 01:20
C#递归建树方法
最佳答案
不知道你是不是访问数据库,我最近也再写个项目,需要递归一个节点下面的所有子节点,我自己写了两个存储过程!注意是嵌套的,我的表结构为id,title,parent,如下:
CREATE proc getChildTNode
@selectid int --这里是传入一个你选择的节点id
as
declare @id int--声明了一个游标变量id
insert #temp select * from tree where parent=@selectid --先插入parent字段为选择id的所有子节点
declare MyCursor cursor local for select [id] from tree where parent=@selectid--声明游标
open MyCursor--打开游标
fetch next from MyCursor into @id--读取下一行
while(@@fetch_status = 0)--判断,至于为什么要判断=0,就不用追究了
begin
exec getChildTNode @id --递归调用
fetch next from MyCursor into @id --将下一个节点id放进id变量作为父节点遍历
end
close MyCursor--关闭游标
deallocate MyCursor--什邡游标
这里还没有完,还有以下调用上面这个存储过程
CREATE proc getChildTNodes
@select int--同上面的定义一个父节点变量
as
create table #temp(
[id] int,
title varchar(50),
parent int,
)--建立一个临时表
exec getChildTNode @select--执行上面定义的存储过程,并传入父节点参数
select * from #temp--递归完成后,选择所有子节点数据
我用的是sqlserver数据库,如果你不是数据库的话,再来探索下,我只是做了存储过程,我相信C#代码还是和这个类似吧!希望对你有帮助
全部回答
递归就是 调用自身函数进行遍历. 很简单的 想想就写出来了
树的遍历要用递归方便,
建树时先用递归遍历到一节点后再新建节点。追问可以给我发个例子么??谢谢了追答没例子,百度上搜一下,会有现成答案的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
红花梨木手串有什么好处
歌舞倾城停车场(入口)地址在什么地方,我要处
如果影剧院的座位8排5座用(8,5)表示,那么
惠比特多久能认识主人
竹天下地址好找么,我有些事要过去
单选题穿过英国伦敦格林尼治天文台的0°经线
15KVA 延时四小时的UPS需要12V 100ah的电池多
西双版纳傣族自治州烟草专卖局停车场怎么去啊
湖南什么茶叶好喝?
假设你叫李华,是某校高二年级学生。最近,你
姓娄的男孩怎么取名?
Kiss地址在什么地方,我要处理点事
表示退让的成语
一个挂钟的时针长2.5厘米,一昼夜这根时针的
玉石林地址在什么地方,想过去办事
推荐资讯
来保利地暖管红色和白色哪个好
天福茗茶(华府店)地址好找么,我有些事要过去
明日之星舞蹈中心惠山分部地址在什么地方,想
漂亮宝贝专业儿童摄影(004乡道与104国道交叉
闲鱼发货地址不能修改买家不肯确认收货怎么办
为了提高国家在世界上的综合科技竞争力,我国
方易图文快印怎么去啊,我要去那办事
贵州省国土资源勘测规划院地址好找么,我有些
青州朝阳汽贸总经销地址好找么,我有些事要过
英剑跆拳道国际教育机构(康乐总馆)地址在什么
动态法测杨氏模量比静态法测量测杨氏模量优势
猎豹汽车地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?