【发布时间】:2011-10-23 03:39:30
【问题描述】:
我有一个包含所有节点的 DataTable。它们被序列化到数据库。我想创建数据的对象图(分层)表示。似乎有几种方法可以做到这一点。
This article describes a high order method(意味着在完全构建树之前需要对 DataTable 进行大量搜索)
是否有 Order-N 方法? 就我而言,我已将 DataTable 中树的节点预排序为有序形式。意思是,第一行显示父级的NULL,因为它是根。随后的每一行都按in-order notation 排序。
我似乎想起了我学生时代的 Order-N 方法。但我不记得了。
我的 DataTable 架构类似于:
- NodeID - int
- ParentNodeId - 可为空
- 数据 - 字符串
【问题讨论】:
-
可能相关:stackoverflow.com/questions/444296/… 这使用字典来跟踪父节点,这可能是最简单的方法。我使用了一个不需要字典的递归解决方案,但已经很久了,我不得不再次推导它。
-
这看起来不像是有序的形式。如果是这种情况,root 就不会是表中的第一个节点。您是说预购吗?
标签: c# database algorithm graph-algorithm