我需要在这两个深度优先和广度优先遍历顺序任意树树的遍历算法。棘手的部分是我需要能够从任意节点开始并继续直到另一个特定节点被遍历。现在遍历一般的树结构在C#中的任意节点开始
,我可以使用任何普通的算法,而忽略了经过的各个节点,直到我打的起始节点,并一直持续到年底节点(我目前做的),但是这是丑陋和低效。
请提出任何建议。
UPDATE:我的每一个节点有与之相关的ID。在某些情况下,我有开始和结束节点引用。在其他情况下,我给了两个ID,我通过检查它们的ID来检查给定节点是开始节点还是结束节点。我使用深度优先遍历来查找开始节点。开始和结束节点都可以位于层次结构中的任何位置。我希望有人能够提出一个想法,我已经给出了对起始节点和终止节点的引用。顺便说一句,在该树中的节点按照排序顺序,从0对于每个节点的子节点的开始和有一个根节点
如何找到树中的开始节点而不遍历它? – BrokenGlass
你已经有*节点了吗?否则,您需要第二个数据结构来加速查找开始/结束节点。 – harold
请指定你的树的结构。有没有排序顺序?节点如何相关? –