示例#1
0
    //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);
 }