现在的位置: 首页 > 综合 > 正文

最新生成树的prim(javascript)

2013年10月21日 ⁄ 综合 ⁄ 共 670字 ⁄ 字号 评论关闭
function mst() {

	var INF = 99999;
	var data = getData();
	var tree = cal(data);

	function cal(data) {
		var dic1 = {};

		dic1[0] = [];
		dic2 = []
		for(var i = 1; i < data.length; i++) {
			dic2.push(i);
		}
		while(dic2.length != 0) {
			cmp(dic1, dic2, data);
		}
		console.log(dic1, dic2);
	}



	function cmp(dic1, dic2, data) {
		// dic
		// like this
		//
		var min = INF;
		var p1 = p2 = null;
		for(var i in dic1) {
			for(var j = 0; j < dic2.length; j++) {
				var len = data[i][dic2[j]];
				if(len < min) {
					min = len;
					p1 = dic1[i];
					p2 = dic2[j];
				}
			}
		}
		if(p1 && p2 != -1) {
			p1.push(p2);
			dic1[p2] = [];
			var index = dic2.indexOf(p2);
			dic2.splice(index, 1);
		}
	}

	function getData() {
		var rst = [];
		rst.push([INF, 5, 6, INF, INF]);
		rst.push([5, INF, 4, 3, INF]);
		rst.push([6, 4, INF, 1, INF]);
		rst.push([INF, 3, 1, INF, 4]);
		rst.push([INF, INF, INF, 4, INF]);
		return rst;
	}


}

抱歉!评论已关闭.