Hello, I am working on a extra credit program for my class. I need to find the shortest distance between two cities and the user needs to be able to add cities during execution. My problem I am having is connecting the nodes that I have already created together. I have narrowed the problem down to the Connect method in my Tree Node class.I have not been able to find anything on Google about connecting nodes.If some one could just take a look and let me know what I did wrong that would be great I am not looking for some one to write my code for me. I really want to learn how to do this myself thanks a lot.
namespace CityDistances { class TreeNode { private List<TreeNode> _nodes; private List<int> _distances; private List<string> _cities; private string _thisCity; public TreeNode(string thisCity) { ThisCity = thisCity; } public List<TreeNode> Nodes { get { return _nodes; } set { try { _nodes = value; } catch (Exception ex) { throw new Exception(ex.Message); } } } public List<int> Distances { get { return _distances; } set { try { _distances = value; } catch(Exception ex) { throw new Exception(ex.Message); } } } public List<string> Cities { get { return _cities; } set { try { _cities = value; } catch(Exception ex) { throw new Exception(ex.Message); } } } public string ThisCity { get { return _thisCity; } set { try { _thisCity = value; } catch(Exception ex) { throw new Exception(ex.Message); } } } public void InsertNode(string insertValue) { for(int i =0; i < Nodes.Count; i++) { if(Nodes[i] == null) { Nodes[i] = new TreeNode(insertValue); break; } } } public static void Connect(TreeNode nodeToBeConnected, TreeNode nodeToConnectTo) { for (int i = 0; i < nodeToConnectTo.Nodes.Count; i++) { if (nodeToConnectTo.Nodes[i] == null) { nodeToConnectTo.Nodes[i] = nodeToBeConnected; break; } } } } } class CityTree { #region(Creating Default Nodes) private TreeNode kansasCity = new TreeNode("KansasCity"); private TreeNode stLouis = new TreeNode("StLouis"); private TreeNode memphis = new TreeNode("Memphis"); private TreeNode louisville = new TreeNode("Louisville"); private TreeNode chicago = new TreeNode("Chicago"); private TreeNode indianapolis = new TreeNode("Indianapolis"); private TreeNode columbus = new TreeNode("Columbus"); #endregion #region(Creating Default Distances) private List<int> kansasCityDistances; private List<int> stLouisDistances; private List<int> memphisDistances; private List<int> louisvilleDistances; private List<int> chicagoDistances; private List<int> indianapolisDistances; private List<int> columbusDistances; #endregion #region(Creating Default Connected Cities) private List<string> kansasConnectedCities; private List<string> stLouisConnectedCities; private List<string> memphisConnectedCities; private List<string> louisvilleConnectedCities; private List<string> chicagoConnectedCities; private List<string> indianapolisConnectedCities; private List<string> columbusConnectedCities; #endregion public CityTree() { #region(Declaring Default Distances) kansasCityDistances = new List<int>() { 0, 250, 530, 510, 525, 490, 705 }; stLouisDistances = new List<int>() { 250, 0, 280, 260, 290, 240, 410 }; memphisDistances = new List<int>() { 530, 560, 0, 540, 533, 520, 695 }; louisvilleDistances = new List<int>() { 510, 260, 540, 0, 297, 100, 275 }; chicagoDistances = new List<int>() { 525, 290, 533, 297, 0, 183, 355 }; indianapolisDistances = new List<int>() { 490, 240, 520, 100, 183, 0, 175 }; columbusDistances = new List<int>() { 705, 410, 695, 297, 355, 175, 0 }; #endregion #region(Declaring Default Connected Cities) kansasConnectedCities = new List<string>() { null, "StLouis", null, null, null, null, null }; stLouisConnectedCities = new List<string>() { "KansasCity", null, "Memphis", "Louisville", "Chicago", "Indianapolis", null }; memphisConnectedCities = new List<string>() { null, "StLouis", null, null, null, null, null }; louisvilleConnectedCities = new List<string>() { null, "StLouis", null, null, null, "Indianapolis", null }; chicagoConnectedCities = new List<string>() { null, "StLouis", null, null, null, "Indianapolis", null }; indianapolisConnectedCities = new List<string>() { null, "StLouis", null, "Louisville", null, null, "Columbus" }; columbusConnectedCities = new List<string>() { null, null, null, null, null, "Indianapolis", null }; #endregion #region(Assigning Default Distances) kansasCity.Distances = kansasCityDistances; stLouis.Distances = stLouisDistances; memphis.Distances = memphisDistances; louisville.Distances = louisvilleDistances; chicago.Distances = chicagoDistances; indianapolis.Distances = indianapolisDistances; columbus.Distances = columbusDistances; #endregion #region(Assigning Default Connected Cities) kansasCity.Cities = kansasConnectedCities; stLouis.Cities = stLouisConnectedCities; memphis.Cities = memphisConnectedCities; louisville.Cities = louisvilleConnectedCities; chicago.Cities = chicagoConnectedCities; indianapolis.Cities = indianapolisConnectedCities; columbus.Cities = columbusConnectedCities; #endregion #region(Connecting Default Nodes) TreeNode.Connect(kansasCity, stLouis); TreeNode.Connect(stLouis, chicago); TreeNode.Connect(stLouis, indianapolis); TreeNode.Connect(chicago, indianapolis); TreeNode.Connect(stLouis, memphis); TreeNode.Connect(stLouis, louisville); TreeNode.Connect(louisville, indianapolis); TreeNode.Connect(indianapolis, columbus); #endregion } }