graph_misc.h
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  graph_misc.h
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. #ifndef LEDA_GRAPH_MISC_H
  12. #define LEDA_GRAPH_MISC_H
  13. //-----------------------------------------------------------------------------
  14. // miscellaneous  (should be members or constructors)
  15. //-----------------------------------------------------------------------------
  16. #include <LEDA/graph.h>
  17. #include <LEDA/node_array.h>
  18. #include <LEDA/edge_array.h>
  19. /*{Manpage {graph_misc} {} {Miscellaneous Graph Functions} }*/
  20. extern bool Is_Bidirected(const graph& G, edge_array<edge>& rev);
  21. /*{Mfuncl   computes for every edge $e = (v,w)$ in $G$ its
  22. reversal $rev[e] = (w,v)$ in $G$ (nil if
  23. not present). Returns true if every edge has a
  24. reversal and false otherwise. }*/
  25. extern bool Is_Simple(graph& G);
  26. /*{Mfunc  returns true if $G$ is simple, i.e., has no parallel
  27.            edges, false otherwise. }*/
  28. extern void Make_Simple(graph& G);
  29. /*{Mfunc  makes $G$ simple by removing one of each pair of
  30.            parallel edges from $G$. }*/
  31. // for historical reasons:
  32. inline bool compute_correspondence(const graph& G, edge_array<edge>& rev)
  33. { return Is_Bidirected(G,rev); }
  34. inline void eliminate_parallel_edges(graph& G) { Make_Simple(G); }
  35. #endif