<script type="text/javascript"> //图的构建 function vnode() { this.visited = 0; this.vertex = 0; this.arcs = new Array(); } function G() { this.adjlist = new Array(); } //0 1 2 3 4 5 var a = [[0, 7, 8, 0, 0, 9], //0 [0, 0, 0, 2, 5, 0], //1 [0, 0, 0, 5, 0, 6], //2 [0, 0, 0, 0, 9, 0], //3 [0, 0, 0, 0, 0, 7], //4 [0, 0, 0, 0, 0, 0]]; //5 function creategraph() { var g = new G(); for (i = 0; i < 6; i++) { g.adjlist[i] = new vnode(); g.adjlist[i].vertex = i; g.adjlist[i].arcs = (function () { var b = new Array(); for (j = 0; j < 6; j++) if (a[i][j]) { b.push(new Number(j)); b[b.length - 1].weight = a[i][j]; } return b; })(); } return g; } var s = new Array(); var arcs = new Array(); var e = new Array(); var g = creategraph(); for (i = 0; i < 6; i++) { for (j = 0; j < g.adjlist[i].arcs.length; j++) { var b = {}; b.a = i; b.b = g.adjlist[i].arcs[j]; b.c = g.adjlist[i].arcs[j].weight; arcs.push(b); } } arcs.sort(function (a, b) { return a.c - b.c; }) //for(i=0;i<arcs.length;i++)alert(arcs[i].a+"---"+arcs[i].b); s.push(g.adjlist[0]); var flag = 0; var flag1 = 0; alert(s.length + "---" + g.adjlist.length); while (s.length < g.adjlist.length) { flag1 = 0; for (i = 0; i < arcs.length; i++) { flag = 0; if (flag1) break; for (j = 0; j < s.length; j++) { if (flag) break; if (arcs[i].a == s[j].vertex) for (k = 0; k < s.length; k++) { if (arcs[i].b == s[k].vertex) { flag = 1; break; } if (k == (s.length - 1)) { alert(arcs[i].a + "---" + arcs[i].b); s.push(g.adjlist[arcs[i].b]); e.push(arcs[i]); arcs.splice(i, 1); flag1 = 1; flag = 1; break; } } else if (arcs[i].b == s[j].vertex) for (k = 0; k < s.length; k++) { if (arcs[i].a == s[k].vertex) { flag = 1; break; } if (k == (s.length - 1)) { alert(arcs[i].a + "---" + arcs[i].b); s.push(g.adjlist[arcs[i].a]); e.push(arcs[i]); arcs.splice(i, 1); flag1 = 1; flag = 1; break; } } } } } </script>