Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
32
Task/Dijkstras-algorithm/Ada/dijkstras-algorithm-1.ada
Normal file
32
Task/Dijkstras-algorithm/Ada/dijkstras-algorithm-1.ada
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
private with Ada.Containers.Ordered_Maps;
|
||||
generic
|
||||
type t_Vertex is (<>);
|
||||
package Dijkstra is
|
||||
|
||||
type t_Graph is limited private;
|
||||
|
||||
-- Defining a graph (since limited private, only way to do this is to use the Build function)
|
||||
type t_Edge is record
|
||||
From, To : t_Vertex;
|
||||
Weight : Positive;
|
||||
end record;
|
||||
type t_Edges is array (Integer range <>) of t_Edge;
|
||||
function Build (Edges : in t_Edges; Oriented : in Boolean := True) return t_Graph;
|
||||
|
||||
-- Computing path and distance
|
||||
type t_Path is array (Integer range <>) of t_Vertex;
|
||||
function Shortest_Path (Graph : in out t_Graph;
|
||||
From, To : in t_Vertex) return t_Path;
|
||||
function Distance (Graph : in out t_Graph;
|
||||
From, To : in t_Vertex) return Natural;
|
||||
|
||||
private
|
||||
package Neighbor_Lists is new Ada.Containers.Ordered_Maps (Key_Type => t_Vertex, Element_Type => Positive);
|
||||
type t_Vertex_Data is record
|
||||
Neighbors : Neighbor_Lists.Map; -- won't be affected after build
|
||||
-- Updated each time a function is called with a new source
|
||||
Previous : t_Vertex;
|
||||
Distance : Natural;
|
||||
end record;
|
||||
type t_Graph is array (t_Vertex) of t_Vertex_Data;
|
||||
end Dijkstra;
|
||||
Loading…
Add table
Add a link
Reference in a new issue