Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>                  // für std::cout
  2. #include <utility>                   // für std::pair
  3. #include <boost/graph/graph_traits.hpp>
  4. #include <boost/graph/adjacency_list.hpp>
  5. using namespace boost;
  6.  
  7. struct Kanteneigenschaften{
  8.     int Kantengewicht;
  9. };
  10.  
  11. struct Knoteneigenschaten
  12. {
  13.   float Modularity;
  14. };
  15.  
  16.  
  17.  
  18. int main()
  19. {
  20.   // Graph-Typen definieren.
  21.   typedef adjacency_list<vecS, vecS, undirectedS, Knoteneigenschaten, Kanteneigenschaten> Graph;
  22.   typedef std::pair<int, int> Kante;
  23.  
  24.   // Kanten erstellen.
  25.   enum { A, B, C, D, E, N };
  26.   const int knotenanzahl = N;
  27.  
  28.   Kante kantenarray[] =
  29.   {
  30.     Kante(A,B), Kante(A,D), Kante(C,A), Kante(D,C),
  31.     Kante(C,E), Kante(B,D), Kante(D,E)
  32.   };
  33.  
  34.   //Anzahl der Kanten
  35.   const int kantenanzahl = sizeof(kantenarray) / sizeof(kantenarray[0]);
  36.  
  37.   // Eigenschaften festlegen.
  38.   Kanteneigenschaften eigenschaften[] =
  39.   {
  40.     {1},
  41.     {2},
  42.     {2},
  43.     {3},
  44.     {3},
  45.     {5},
  46.     {5},
  47.   };
  48.  
  49.   // Eigentlichen graphen erstellen.
  50.   Graph g(kantenarray, kantenarray+kantenanzahl, eigenschaften, knotenanzahl);
  51.  
  52.   // Name der ersten Kante ändern.
  53.   //g[*edges(g).first].Name = "Test";
  54.  
  55.   // Alles ausgeben.
  56.   graph_traits<Graph>::edge_iterator e, eend;
  57.  
  58.   std::cout << "edges(g) = { ";
  59.   for (tie(e,eend) = edges(g); e!=eend; ++e)
  60.   {
  61.     Kanteneigenschaften& p = g[*e];
  62.     std::cout << "(" << p.Kantengewicht << ") ";
  63.   }
  64.   std::cout << "}" << std::endl;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement