lifo-dijkstraserv/src/dijkstrasearch.h

32 lines
926 B
C

#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_solver *solver;
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);
void dijkstra_print_path(struct dijkstra_search *search,
struct dijkstra_node *destination);
void dijkstra_print_nodes(struct dijkstra_search *search);
#endif // DIJKSTRASEARCH_H