问一下,怎样快速判断一个无圈无向连通图中的点a是否是点b与点c的路径上的点?
我的算法是先用一个邻接表来存储那个图,然后任意选一个点作为根进行深度优先遍历并记录每个点的进栈与出栈时间。然后利用进出栈时间的包含关系来判断点a是否是点b、c路径中的点,具体包含关系为:1、若点a是且仅是点b、c中一个点的祖先时,则a在b、c的路径上;
2、若点a都是点b、c的祖先,则若a是b、c的最小共同祖先,则a是在b、c路径上的点。
我现在遇到的问题是怎样用O(logn)的时间复杂度判断若点a是b、c的祖先时是否是最小共同祖先
高人帮助~
[[it] 本帖最后由 kiddlee 于 2008-10-26 14:08 编辑 [/it]]