我正在处理二叉树,我想知道如何加权边缘以便以深度优先的顺序访问二叉树。
我知道我需要为通往我想先访问的节点的边缘分配更少的权重
但是节点的深度是否存在关系?
欢呼声。
答案 0 :(得分:4)
这听起来像是学生的练习。可以首先使用Dijkstra算法搜索二叉树深度。树的边缘和深度确实存在关系:
A
1 4
B E
1 2 1 2
C D F G
在上面的树中,字母代表节点,数字代表加权边。 Dijkstra的算法将以深度优先顺序访问该树的节点。在这个特定情况下:按字母顺序排列。
答案 1 :(得分:0)
由于Dijkstra算法计算每个顶点的前驱者之间的分数,因此您将始终具有这样的BFS行为。例如,你从第一个知道顶点A
开始。没有pred,值设置为0.你接受所有后继者,并且对于每个后继者,你测试所有前辈的距离和相关值。它对我来说就像一个BFS。