functor (A : Traversal.A) (G : G) ->
sig
module T :
sig
type visit_info =
Traversal.Traversal(A).visit_info = {
nb : int;
dist : int;
parent : int;
}
type t =
Traversal.Traversal(A).t = {
visit : visit_info A.t;
mutable n : int;
}
val non_vertex : int
val visit_nb : t -> int -> int
val visited : t -> int -> bool
val parent : t -> int -> int
val dist : t -> int -> int
val nb_visited : t -> int
val nb_nodes : t -> int
exception Found of int
val last_visited : t -> int
val order : t -> int A.t
val iter_path : (int -> 'a) -> t -> int -> int -> unit
val fold_path : (int -> 'a -> 'a) -> t -> int -> int -> 'a -> 'a
val path_rev : t -> int -> int -> int list
val path : t -> int -> int -> int list
val make : int -> t
val set : t -> int -> int -> int -> int -> unit
end
val of_forest :
?tfac:float ->
?tadd:int -> Skeleton.Skeleton.T.t -> bool A.t * int A.t * int A.t
module Bfs :
sig
module T :
sig
type visit_info =
Traversal.Traversal(A).visit_info = {
nb : int;
dist : int;
parent : int;
}
type t =
Traversal.Traversal(A).t = {
visit : visit_info A.t;
mutable n : int;
}
val non_vertex : int
val visit_nb : t -> int -> int
val visited : t -> int -> bool
val parent : t -> int -> int
val dist : t -> int -> int
val nb_visited : t -> int
val nb_nodes : t -> int
exception Found of int
val last_visited : t -> int
val order : t -> int A.t
val iter_path : (int -> 'a) -> t -> int -> int -> unit
val fold_path : (int -> 'a -> 'a) -> t -> int -> int -> 'a -> 'a
val path_rev : t -> int -> int -> int list
val path : t -> int -> int -> int list
val make : int -> t
val set : t -> int -> int -> int -> int -> unit
end
type visit_info =
Traversal.Traversal(A).visit_info = {
nb : int;
dist : int;
parent : int;
}
type t =
Traversal.Traversal(A).t = {
visit : visit_info A.t;
mutable n : int;
}
val non_vertex : int
val visit_nb : t -> int -> int
val visited : t -> int -> bool
val parent : t -> int -> int
val dist : t -> int -> int
val nb_visited : t -> int
val nb_nodes : t -> int
val last_visited : t -> int
val order : t -> int A.t
val iter_path : (int -> 'a) -> t -> int -> int -> unit
val fold_path : (int -> 'a -> 'a) -> t -> int -> int -> 'a -> 'a
val path_rev : t -> int -> int -> int list
val path : t -> int -> int -> int list
val make : int -> t
val set : t -> int -> int -> int -> int -> unit
module Queue :
sig
module V :
sig
type t = Traversal.Bfs(A)(G).Queue.V.t
type elt = int
val make : ?size:int -> unit -> t
val set : t -> int -> elt -> unit
val get : t -> int -> elt
val clear : t -> unit
val index_max : t -> int
val length : t -> int
val capacity : t -> int
val blit : t -> int -> t -> int -> int -> unit
val default : unit -> elt
end
type t =
Traversal.Bfs(A)(G).Queue.t = {
mutable v : V.t;
mutable front : int;
mutable back : int;
}
type elt = V.elt
val create : ?size:int -> unit -> t
val is_empty : t -> bool
val clear : t -> unit
val add : t -> V.elt -> unit
val peek : t -> V.elt
val compact : t -> unit
val pop : t -> V.elt
val size : t -> int
end
exception Found of T.t
val forest :
?find:Queue.V.elt option ->
?follow_succ:bool ->
?follow_pred:bool -> G.t -> Queue.V.elt list -> T.t
val tree :
?follow_succ:bool -> ?follow_pred:bool -> G.t -> Queue.V.elt -> T.t
val find_dist :
?follow_succ:bool ->
?follow_pred:bool -> G.t -> Queue.V.elt -> Queue.V.elt -> int
end
val of_graph_comp :
?tfac:float ->
?tadd:int ->
?girth:int ->
G.t -> Skeleton.Skeleton.Bfs.Queue.V.elt -> G.t * G.t * G.t * int
end