Cliquer ici pour télécharger zip


Constructeurs
graph<T> (bool=false); Constructeur par défaut
graph<T> (const graph<T> &); Constructeur de recopie



Surcharge d'opérateurs
graph<T> & operator= (const graph<T> &); Assigne les valeurs d'un heap à un autre



Liste des fonctions et description pour graph.cpp
void delete_graph(); Supprime le graphe
void mark_dfs (vertex<T> *, int &); Fonction utilitaire au DFS
void init_dijkstra (vertex<T> *); Initialise les dates date_d et date_f
vertex<T> * min_dijkstra (vertex<T> *); Retourne le vertex avec distance minimum
void release_dijkstra (vertex<T> *, vertex<T> *, int); Mise à jour des chemins
void tie_kruskal (vertex<T> *, vertex<T> *); Utilitaire pour l'algorithme de Kruskal
void makeset_kruskal (vertex<T> *); Initialise un singleton
vertex<T> * find_kruskal (vertex<T> *); Retourne le chemin le plus court
void union_kruskal (vertex<T> *, vertex<T> *); Utilitaire pour l'algorithme de Kruskal
void init_p_kruskal (); Initialise les parents du grapghe
void bsort (std::vector<linkset> &); Tri à bulles des éléments
void permute (std::vector<linkset> &, int &, int &); Utilitaire pour le tri de bsort
void add_vertex (std::string, const T &); Ajoute un vertex associé à un contenu dans la liste, non lié
void link_vertices (std::string, std::string, int); Crée un lien entre les deux vertex
void link_vertices_listparents (std::string, std::initializer_list<std::string>); Idem, plusieurs parents
void link_corr (std::string, std::string, int); Correction du poids si différent de 1
vertex<T> * search_vertex_byname (std::string); Recherche d'un vertex par son nom
void release_vertex (vertex<T> *); Supprime un vertex du graphe
void display_graph (vertex<T> *); Affichage du graphe
vertex<T> * get_root () const; Retourne le vertex racine
void make_graphlinkset (); Construit un vecteur de linkset
std::list<vertex<T> *> bfs (vertex<T> *); Parcours en largeur (Breadth First Search)
std::list<vertex<T> *> dfs (vertex<T> *); Parcours en profondeur (Depth First Search)
std::list<vertex<T> *> dijkstra (vertex<T> *); Calcul du plus court chemin
void display_dijkstra (vertex<T> *); Affichage du plus court chemin
std::list<std::pair<std::pair<vertex<T>*,vertex<T>*>,int>> kruskal (vertex<T> *); Calcul de l'ACM (arbre couvrant minimal)
void display_kruskal (vertex<T> *); Affiche l'ACM calculé par Kruskal
graph<T> & graph_from_linksetslist (); Retourne le graphe représenté par k_list
void write_graph_to_file (std::string, bool=false); Enregistre le graphe dans un fichier
graph<T> & read_graph_from_file (std::string); Charge le graphe à partir d'un fichier



Liste des fonctions et description pour links.h
void pushback_record (vertex<T> *, int); Insère un lien à la fin du vecteur des liens
void popback_record (); Retourne et retire le lien à la fin du vecteur des liens
void erase_atpos_next (vertex<T> *, int); Supprime un lien suivant une position donnée
void erase_atpos_prev (vertex<T> *, int); Supprime un lien précédent une position donnée
unsigned int find_pos_next (vertex<T> *); Retourne la position du suivant
unsigned int find_pos_prev (vertex<T> *); Retourne la position du précédent
void clear (); Supprime les éléments du vecteur des liens
bool isempty (); Teste si le vecteur des liens est vide
int get_weight (vertex<T> *, vertex<T> *ptr_null); Retourne le poids d'un lien donné



Liste des fonctions et description pour gnv.h
void pushback_record (std::string &, vertex<T> *); Insère un nom à la fin du vecteur des noms
void pushback_root (std::string &, vertex<T> *); Insère un élément à la racine
void popback_record (); Retourne et retire un nom à la fin du vecteur des noms
void swaproot (unsigned int); Remplace l'élément racine
void erase_atpos (vertex<T> *, int); Supprime un élément à une position donnée
unsigned int find_pos (vertex<T> *); Retourne la position d'un élément
vertex<T> * find_by_name (std::string &); Retourne un noeud selon son nom
void clear (); Supprime les éléments du vecteur des noms
bool isempty () Teste si le vecteur des noms est vide