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

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  _spanning.c
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. /*******************************************************************************
  12. *                                                                              *
  13. *  SPANNING_TREE  (spanning tree)                                              *
  14. *                                                                              *
  15. *******************************************************************************/
  16. #include <LEDA/graph_alg.h>
  17. #include <LEDA/node_partition.h>
  18. list<edge> SPANNING_TREE(const graph& G)
  19. { node v,w;
  20.   edge e;
  21.   list<edge> EL;
  22.   node_partition P(G);
  23.   forall_edges(e,G)
  24.      { v = source(e);
  25.        w = target(e);
  26.        if (! P.same_block(v,w))
  27.         { EL.append(e);
  28.           P.union_blocks(v,w);
  29.          }
  30.       }
  31.   return EL;
  32. }