怎样判断一个无向连通图是否为二分图?该如何解决

怎样判断一个无向连通图是否为二分图?
请高手帮帮忙:
        二部图(bipartite     graph)     G=(V,E)是一个能将其结点集V分为两不相交子集V   1和V2=V-V1的无向图,使得:V1中的任何两个结点在图G中均不相邻,V2中的任何结点在图G中也均不相邻。
请用C编写一个函数BIPARTITE判断一个连通无向图G是否是二部图,并分析程序的时间复杂度。设G用二维数组A来表示,大小为n*n(n为结点个数)。



------解决方案--------------------
如果不存在边数为奇数的回路,那就是二部图(无回路,或者回路边数是偶数)。
------解决方案--------------------
点二着色