30 lines
833 B
C
30 lines
833 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_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
|