您的位置:首页 > 职场人生

一道关于图的面试题

2012-12-07 20:45 239 查看
最近一直在做一个build system的依赖管理,感觉其中某些内容可以抽取出来,作为一道很不错的面试题:

假设你在同时编译n个项目,他们相互之间有依赖关系,比如:



现在,让你写一个算法,把每个项目的依赖拍平:即把其所有间接依赖+直接依赖的项目都输出。
比如上面这个图的输出就为:

a: b c d e f g
b: c d
c: d
d:
e: f g
f: g
g:


然后,还可以有后续的问题:

如果有环,如何判断并输出环?

如果这些项目有可能有一些外部的依赖,请改变你的算法以适合这种情况。

好,面试到此结束。

下面是个扩展题,没在工作中做到,但后来想了下,觉得挺有意思:

为了提高编译速度,现在需要找出那些可以并行编译的项目,请改进算法实现之。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: