#ifndef DIJKSTRASEARCH_H #define DIJKSTRASEARCH_H #include "dijkstragraph.h" #define DIJKSTRA_SEARCH_MAX_ITERATIONS 2000 struct dijkstra_state { struct dijkstra_path *cheapest_path; dijkstra_cost cost; int visited; }; struct dijkstra_search { struct dijkstra_state **states; unsigned int node_count; struct dijkstra_node *start; GList *active_nodes; }; struct dijkstra_search *dijkstra_search_new(struct dijkstra_solver *solver); void dijkstra_search_free(struct dijkstra_search *search); void dijkstra_search_set_start(struct dijkstra_search *search, struct dijkstra_node *start); int dijkstra_search_find_path(struct dijkstra_search *search, struct dijkstra_node *destination); int dijkstra_print_path(struct dijkstra_search *search, struct dijkstra_node *destination); #endif // DIJKSTRASEARCH_H