Answer:
Check the explanation
Explanation:
using System;
using System.Collections;
namespace HelloWorldApplication
{
class Temperature{
public double degrees;
double scale; // use of this field is not specified
public override string ToString(){
return ("degrees:"+degrees+", scale:"+scale);
}
}
class Location{
int x;
int y;
public Location(int x, int y){
this.x = x;
this.y = y;
}
public double getDistance(Location otherLoc){
return Math.Sqrt((x-otherLoc.x)*(x-otherLoc.x) +(y-otherLoc.y)*(y-otherLoc.y) );
}
public override string ToString(){
return ("("+x+", "+y+")");
}
}
class Pool{
public Pool(){
count++;
}
public static int count=0;
public Location location;
public Temperature temperature;
public override string ToString(){
return ("location:"+location+", temperature:"+temperature);
}
}
class Driver
{
static void Main(string[] args)
{
Random r = new Random();
ArrayList list = new ArrayList();
Console.WriteLine("Before adding pool count : "+Pool.count);
Pool pool = new Pool();
pool.location = new Location(4,8);
pool.temperature = new Temperature();
pool. temperature. degrees =r. Next (98,105);
list. Add(pool);
Console. WriteLine("After adding pool count : "+Pool. count);
Console.WriteLine("Before adding pool count : "+Pool.count);
pool = new Pool();
pool.location = new Location(12,9);
pool.temperature = new Temperature();
pool. temperature. degrees =r.Next (98,105);
list.Add(pool);
Console.WriteLine("After adding pool count : "+Pool.count);
Console.WriteLine("Before adding pool count : "+Pool.count);
pool = new Pool();
pool.location = new Location(6,6);
pool.temperature = new Temperature();
pool.temperature. degrees =r.Next (98,105);
list.Add(pool);
Console.WriteLine("After adding pool count : "+Pool.count);
Location location = new Location(0,0);
// You can even use Minimum Spanning Tree algorithm to reduce the time complexity
Console.WriteLine("Path is : ");
while(list.Count > 0){
Pool selectedPool = null;
double dist =double.MaxValue;
foreach (Pool i in list)
{
if(i.location.getDistance(location) < dist){
selectedPool = i;
}
}
Console.Write(selectedPool + " >> " );
location = selectedPool.location;
list.Remove(selectedPool);
}
/* my first program in C# */
Console.WriteLine(" end.");
Console.ReadKey();
}
}
}