我有一个树结构,由数十种节点类型组成(每种节点类型都继承自NodeBase类)。
我想在树上执行搜索,以返回对特定节点的引用。例如,假设有一棵公司树,其中包含除其他类型节点外的部门节点。部门节点包含员工节点。假定员工必须是部门的一部分,并且可以在一个部门中。
目前,设计如下:每个节点都有一个子节点列表,类型为NodeBase。树可能会变得很大,在某些情况下可能会有数十万个节点。插入/删除操作很少使用,而对于这些大树,搜索操作不应该花费“太长时间”。
假设我要获取一个员工节点的引用,其employee ID字段等于我提供的某个字符串。我不知道员工在哪个部门,所以我必须搜索所有节点,希望找到匹配项。并非所有节点都具有employee ID字段;例如,部门没有此字段。
考虑到这个树结构的设计方式,我不确定实现搜索功能的最佳方法。
可能有更好的方法来设计数据的存储方式(例如:使用数据库?),但目前我卡在了一棵树上。
我想在树上执行搜索,以返回对特定节点的引用。例如,假设有一棵公司树,其中包含除其他类型节点外的部门节点。部门节点包含员工节点。假定员工必须是部门的一部分,并且可以在一个部门中。
目前,设计如下:每个节点都有一个子节点列表,类型为NodeBase。树可能会变得很大,在某些情况下可能会有数十万个节点。插入/删除操作很少使用,而对于这些大树,搜索操作不应该花费“太长时间”。
假设我要获取一个员工节点的引用,其employee ID字段等于我提供的某个字符串。我不知道员工在哪个部门,所以我必须搜索所有节点,希望找到匹配项。并非所有节点都具有employee ID字段;例如,部门没有此字段。
考虑到这个树结构的设计方式,我不确定实现搜索功能的最佳方法。
可能有更好的方法来设计数据的存储方式(例如:使用数据库?),但目前我卡在了一棵树上。