首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

.net中除了递归外,其它的生成树算法解决思路

2012-01-01 
.net中除了递归外,其它的生成树算法表结构是id,name,pid(父id)现在用递归算法生成树没有问题,我想问的是有

.net中除了递归外,其它的生成树算法
表结构是 id,name,pid(父id) 
现在用递归算法生成树没有问题,我想问的是有没有其它高效生成树的算法,表中也可以添加字段.(.net开发)

[解决办法]
可添加字段就简单了

把节点和根的距离保存起来,取时按(级数,父id,id)排序,这样生成树算法是o(n)的且中间变量数为常数
[解决办法]
关键在于树本身就是一种递归定义的数据结构!

因此用递归最合适不过了,当然任何递归算法都可以改为非递归算法!

至于高效的问题,俺觉得与是否递归无关!
[解决办法]
请问用汇编还是用c#高效?其实这个就没有意义了,否则你为什么不用汇编呢?

相比之下,递归和非递归的差别要比c#与汇编的差别还大。使用递归可以保持清晰头脑、而且也很高效。

只要经过实际测试证明效率足够就可以了。编程要的是正好合适,而不是过分追求高效(因为那往往丧失可维护性)。
[解决办法]
不用递归也可以。一个ORDER BY 就可以了。
ORDER BY PID,ID ,然后 从 ITEM(0)到 ITEM(N-1)直接放到树中就可以了。

热点排行