图中顶点的简单回路

<script>
//-------------------------------------图的定义--------------------------//
function vnode()
{
this.visited=0;
this.vertex=0;
this.arcs=new Array();
}
function G()
{
this.adjlist=new Array();
}
function creategraph()
{
var a=[[2,3],[3],[4,5],[5],[1]];
var g=new G();
for (i=0;i<5;i++)
{
g.adjlist[i]=new vnode();
g.adjlist[i].vertex=i+1;
g.adjlist[i].arcs=a[i];
}
return g;
}
//-----------------------简单回路---------------------------------//
var a=new Array();
a.push([1]);
var g=creategraph();
while(a.length)
{
var tmp=g.adjlist[a[0][a[0].length-1]-1].arcs;
for(i=0;i<tmp.length;i++)
{
     if(tmp[i]==1){alert(a[0].concat([1]));continue;}
     for(j=0;j<a[0].length;j++)
     {
         if(tmp[i]==a[0][j])break;
         if(j==a[0].length-1)a.push(a[0].concat(tmp[i]));
     }
}
a.shift();
}
</script>

 

posted @ 2013-08-09 19:01  SKY_VIEW  阅读(513)  评论(0编辑  收藏  举报