【发布时间】:2015-02-04 07:36:24
【问题描述】:
给定一个数据树类:
class DataTreeNode<T> : IEnumerable<DataTreeNode<T>>
{
public KeyValuePair<T, int> Data
{
get;
set;
}
public DataTreeNode<T> Parent {get; set;}
public ICollection<DataTreeNode<T>> Children {get; set;}
.....
}
Data 属性包含数据的键和数据类型的值。 并给定一个树实例,我需要构建一个过滤如下的子树:
一个。仅包含叶节点的某些值(Data.Key)
b.叶子的路径符合:
仅包含某些类型的节点(Data.value)
不包含某些类型的节点(Data.value)
我尝试将所有可能的路径提取为节点列表,过滤列表并重建树,但到目前为止还没有成功。
我直觉上觉得应该使用一些递归之王来完成,但是我不知道如何在递归内部进行过滤和新树的构造。
【问题讨论】:
-
你试过什么?需要看一些代码!
-
有很多行代码,这可能意味着它的错误方法,因为这应该是简短而简洁的;它们也不起作用。