数据结构有关问题,用!
数据结构问题,急用!!
给定A,B,C,D四个城市之间的单向高速公路,如图,边上所注的为单向高速公路的公里数,现要建立一个急救中心,其地点应选择在某城市,使得应急中心到最远的城市的高速公路最近.怎么选啊?
应该用什么算法呢??
------解决方案--------------------
有没有图呀?这样我很难理解?
------解决方案--------------------
这个问题 ,应该用 图解 。
就是典型的邮差问题 。
但是 只有 4个 城市 就没有必要了八。
------解决方案--------------------
mini-spantree 最小生成树
prim or kruskal algorithm
------解决方案--------------------
4个城市??
------解决方案--------------------
支持prim算法
或
EF = min({AB,AC,AD,BC,BD,CD}) 假设EF为集合中段短的边
f = {AB,AC,AD,BC,BD,CD}-{EF} 则f={AC,AD,BC,BD,CD}
EF =min(f); 假设AC最短
f = f-{EF}; 则f={AD,BC,BD,CD}
.........................................................
设计一个枚举类型
//由于只有四个城市,且是已知的,我们可以实例化prim算法!
//x1,x2,x3,x4,x5,x6为几个边相应的距离
public enum MyEnum
{
AB = x1,AC = x2 ,AD = x3;
BC = x4, BD = x5 ,CD = x6;
}
public class Test
{
string path;
Hashtable hashtable = new Hashtable();
hashtable.Add( "AB ",x1);
hashtable.Add( "AC ",x2);
hashtable.Add( "AD ",x3);
hashtable.Add( "BC ",x4);
hashtable.Add( "BD ",x5);
hashtable.Add( "CD ",x6);
public void FindPath()
{
for(int i =0; i <=5;i++)
{
//比较HASHTABLE中的VALUE值,取得最小的KEY
//并将记下
path = path + hashtable( "最小值 ",value).key;
hashtable.RemoveKey( "最小值 ");
}
结果
}
}
给定A,B,C,D四个城市之间的单向高速公路,如图,边上所注的为单向高速公路的公里数,现要建立一个急救中心,其地点应选择在某城市,使得应急中心到最远的城市的高速公路最近.怎么选啊?
应该用什么算法呢??
------解决方案--------------------
有没有图呀?这样我很难理解?
------解决方案--------------------
这个问题 ,应该用 图解 。
就是典型的邮差问题 。
但是 只有 4个 城市 就没有必要了八。
------解决方案--------------------
mini-spantree 最小生成树
prim or kruskal algorithm
------解决方案--------------------
4个城市??
------解决方案--------------------
支持prim算法
或
EF = min({AB,AC,AD,BC,BD,CD}) 假设EF为集合中段短的边
f = {AB,AC,AD,BC,BD,CD}-{EF} 则f={AC,AD,BC,BD,CD}
EF =min(f); 假设AC最短
f = f-{EF}; 则f={AD,BC,BD,CD}
.........................................................
设计一个枚举类型
//由于只有四个城市,且是已知的,我们可以实例化prim算法!
//x1,x2,x3,x4,x5,x6为几个边相应的距离
public enum MyEnum
{
AB = x1,AC = x2 ,AD = x3;
BC = x4, BD = x5 ,CD = x6;
}
public class Test
{
string path;
Hashtable hashtable = new Hashtable();
hashtable.Add( "AB ",x1);
hashtable.Add( "AC ",x2);
hashtable.Add( "AD ",x3);
hashtable.Add( "BC ",x4);
hashtable.Add( "BD ",x5);
hashtable.Add( "CD ",x6);
public void FindPath()
{
for(int i =0; i <=5;i++)
{
//比较HASHTABLE中的VALUE值,取得最小的KEY
//并将记下
path = path + hashtable( "最小值 ",value).key;
hashtable.RemoveKey( "最小值 ");
}
结果
}
}