该算法是实现克鲁斯卡尔算法和普里姆算法的基础
//判定加入的边是否构成环的函数
bool IsCircle(ENodeList *head)
{
bool tag=false;
ENodeList *p=head; ENodeList *q=head;
if(p->next)
{
String init=p->next->inode;
String give=p->next->jnode;
p->next->visited=1;
q=p->next;
loop:
while(q->next)
{
if(q->next->inode!=give && q->next->jnode!=give ) q=q->next;
else goto flag1;
}
//说明没有环,tag=False, 返回tag
tag=false;
goto flag2;
flag1:
//如果已经是被检索过的,则q=q->next;
if(q->next->visited==1)
{
q=q->next;
goto loop;
}
//如果未检索过,则进行判断
if(give==q->next->ino