Facebook
From Whipped Monkey, 5 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 214
  1. #pragma once
  2.  
  3. //tu w sumie nic nie ma
  4. class Krawedz
  5. {
  6. public:
  7.         friend class Graf;
  8.  
  9. private:
  10.         int K_W1;
  11.         int K_W2;
  12.         int K_waga = -1;
  13. };
  14.  
  15.  
  16.  
  17.  
  18. ////////////////////////////////////////
  19. ////////////////////////////////////////
  20. ////////////////////////////////////////
  21. ////////////////////////////////////////
  22. ////////////////////////////////////////
  23. ////////////////////////////////////////
  24. ////////////////////////////////////////
  25. ////////////////////////////////////////
  26. ////////////////////////////////////////
  27. ////////////////////////////////////////
  28. ////////////////////////////////////////
  29. ////////////////////////////////////////
  30. ////////////////////////////////////////
  31. ////////////////////////////////////////
  32. ////////////////////////////////////////
  33.  
  34.  
  35.   #pragma once
  36. #include <iostream>
  37. #include <vector>
  38. #include "Krawedz.h"
  39.  
  40. class Wierzcholek
  41. {
  42. public:
  43.         friend class Graf;
  44.         void UstawWierzcholek(const int ile);
  45.         //Do sprawdzania spojnej skladowej
  46.         void WDFS(int v, int &skladowa);
  47.  
  48.  
  49. private:
  50.         //wektor wag krawedzi do danego sasiada
  51.         std::vector<int> W_waga;
  52.         //Adresy sasiadow
  53.         Wierzcholek **W_sasiedzi;
  54.         //Przechowuje informacje czy wierzcholek zostal juz odiwedzony
  55.         int W_odwiedzony;
  56.         //Informacje o skladowej do ktorej nalezy wierzcholek
  57.         int W_skladowa;
  58.         //Ile sasiadow ma dany wierzcholek
  59.         int W_ilosc_sasiadow;
  60.         //Sluzy do zwalniania pamieci
  61.         //w przypadku gdy nie udalo sie wygenerowac spojnej skladowej za pierwszym razem
  62.         int W_free = 0;
  63.         //Numer wierzcholka(numerujemy od 0)
  64.         int W_nr_wierzcholka;
  65.  
  66. };
  67.  
  68.  
  69.   ////////////////////////////////////////
  70. ////////////////////////////////////////
  71. ////////////////////////////////////////
  72. ////////////////////////////////////////
  73. ////////////////////////////////////////
  74. ////////////////////////////////////////
  75. ////////////////////////////////////////
  76. ////////////////////////////////////////
  77. ////////////////////////////////////////
  78. ////////////////////////////////////////
  79. ////////////////////////////////////////
  80. ////////////////////////////////////////
  81. ////////////////////////////////////////
  82. ////////////////////////////////////////
  83. ////////////////////////////////////////
  84.  
  85.  
  86.  
  87.  #include "Wierzcholek.h"
  88.  
  89. void Wierzcholek::UstawWierzcholek(const int ile)
  90. {
  91.         W_sasiedzi = new Wierzcholek *[ile];
  92. }
  93.  
  94. void Wierzcholek::WDFS(int v, int &skladowa)
  95. {
  96.         W_skladowa = skladowa;
  97.         W_odwiedzony = 1;
  98.         for(int i = 0; i < W_ilosc_sasiadow; i++)
  99.         {
  100.                 if(W_sasiedzi[i] -> W_odwiedzony == -1)
  101.                 {
  102.                         W_sasiedzi[i]->WDFS(i,skladowa);
  103.                 }
  104.         }
  105. }