我被分配了以下问题,但我遇到了问题。我知道我想要完成什么,但考虑到他为我们概述的骨架代码,我不知道从哪里开始......我画了一张照片来说明我想要完成的事情(我想... )
http://i802.photobucket.com/albums/yy304/Growler2009/Transposing-1.jpg
这就是我需要做的事情:
考虑有向图G(V; A)。 G写GT(V; AT)的转置只不过是 G所有弧都已被转置,即弧的原点成为结束和结束 成为起源。从某种意义上说,GT是G的“落后”版本。对于这个问题,你必须这样做 实现一种算法,给定有向图,产生其转置。 API的API 算法由以下界面给出:
public interface Transpose<VT,AT> {
public DIGraph<VT,AT> doIt(DIGraph<VT,AT> src);
}
实现上面给出的转置算法。你没有限制如何做到这一点(除了 它必须在表示为邻接列表的图形上操作,并且它不能修改原始图形 图形。报告(在评论中)大O符号和布里干的空间和时间复杂性 ÿ 自圆其说。 (也就是说,需要多长时间以及用n转置图形所用的空间 顶点和m弧)。
你可以提供任何帮助我入门的帮助都很棒。
谢谢!
答案 0 :(得分:0)
在pseudolanguagecode中:
create new empty set of edges E
for I in all edges:
(X,Y) = vertices of edge I ;
insert edge (Y,X) to E;
result is in E.
空间复杂性:没有要求
时间复杂度:O(边数)