//hier wird die edgelist in einen dijkstra_node konvertiert ein node beinhaltet: die eigene id, liste der nachbarn, list der edges zu den nachbarn mit der länge private void convert_edgelist_to_dijkstra_node_list() { check_connection_state_of_nodes(); //Debug.log ("convert edgelist :" + edgelist.Count.ToString ()); //alle List <int> individual_nodes = new List <int> (); individual_nodes.Clear(); dijkstra_node_list.Clear(); //clear list //hier teilen wir die edges in die nodes auf foreach (wp_edge n in edgelist) { bool war_drinnen = false; //adde alle anfgangspunkte foreach (int inode in individual_nodes) { if (inode == n.source_id) { war_drinnen = true; } } if (!war_drinnen) { individual_nodes.Add(n.source_id); } } foreach (wp_edge n in edgelist) { bool war_drinnen = false; //adde alle anfgangspunkte foreach (int inode in individual_nodes) { if (inode == n.dest_id) { war_drinnen = true; } } if (!war_drinnen) { individual_nodes.Add(n.dest_id); } } //hier für jeden gerade erzeugten node einen dijkstra_node erstellen dieser enthät alle infos für den graph foreach (int inode in individual_nodes) { dijkstra_node new_dnode = new dijkstra_node(inode); //Debug.log("new dnode : " + inode.ToString()); //alle edges hinzufügen foreach (wp_edge edge in edgelist) { if (edge.source_id == inode) { new_dnode.node_edges.Add(edge); //Debug.log(" neigh : " + edge.dest_id); new_dnode.neighbours.Add(edge.dest_id); } } new_dnode.log_info(); dijkstra_node_list.Add(new_dnode); } //Debug.log ("conversion complete : " + dijkstra_node_list.Count.ToString ()); Dijkstra_Init(dijkstra_node_list, 1); }
//hier wird die edgelist in einen dijkstra_node konvertiert ein node beinhaltet: die eigene id, liste der nachbarn, list der edges zu den nachbarn mit der länge private void convert_edgelist_to_dijkstra_node_list() { check_connection_state_of_nodes(); //Debug.log ("convert edgelist :" + edgelist.Count.ToString ()); //alle List<int> individual_nodes = new List<int> (); individual_nodes.Clear (); dijkstra_node_list.Clear (); //clear list //hier teilen wir die edges in die nodes auf foreach (wp_edge n in edgelist) { bool war_drinnen = false; //adde alle anfgangspunkte foreach (int inode in individual_nodes) { if (inode == n.source_id) { war_drinnen = true; } } if (!war_drinnen) { individual_nodes.Add (n.source_id); } } foreach (wp_edge n in edgelist) { bool war_drinnen = false; //adde alle anfgangspunkte foreach (int inode in individual_nodes) { if (inode == n.dest_id) { war_drinnen = true; } } if (!war_drinnen) { individual_nodes.Add (n.dest_id); } } //hier für jeden gerade erzeugten node einen dijkstra_node erstellen dieser enthät alle infos für den graph foreach (int inode in individual_nodes) { dijkstra_node new_dnode = new dijkstra_node (inode); //Debug.log("new dnode : " + inode.ToString()); //alle edges hinzufügen foreach (wp_edge edge in edgelist) { if (edge.source_id == inode) { new_dnode.node_edges.Add (edge); //Debug.log(" neigh : " + edge.dest_id); new_dnode.neighbours.Add (edge.dest_id); } } new_dnode.log_info(); dijkstra_node_list.Add (new_dnode); } //Debug.log ("conversion complete : " + dijkstra_node_list.Count.ToString ()); Dijkstra_Init(dijkstra_node_list, 1); }