Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <queue>
  4.  
  5. using namespace std;
  6.  
  7. //Zadanie 1
  8.  
  9. const int N = 6; //maksymalny rozmiar kolejki
  10. int kolejka[N]; //kolejka
  11.  
  12. int QueueSize = 0;
  13.  
  14. void dodaj(int v) { //v - wartość do wstawienia
  15. if (QueueSize < N)
  16. {
  17. kolejka[QueueSize] = v;
  18.  
  19. if (QueueSize > 0)
  20. {
  21. int temp = QueueSize;
  22. while (kolejka[(temp - 1) / 2] < kolejka[temp])
  23. {
  24. swap(kolejka[(temp - 1) / 2], kolejka[temp]);
  25. temp = (temp - 1) / 2;
  26. }
  27. }
  28. ++QueueSize;
  29. }
  30. else
  31. {
  32. cout << "Kolejka pełna." << endl;
  33. }
  34. }
  35.  
  36. void print() { //wyświetla stan kolejki
  37. cout << "Kolejka: ";
  38. for (int i = 0; i < QueueSize; ++i)
  39. cout << kolejka[i] << ' ';
  40. cout << endl;
  41. }
  42.  
  43. void zadanie1() {
  44. dodaj(5); print(); dodaj(3); print(); dodaj(8); print(); dodaj(6); print();
  45. dodaj(2); print(); dodaj(5); print(); dodaj(7); print();
  46. }
  47.  
  48.  
  49. //Zadanie 2
  50.  
  51. const int V = 10;
  52. int G[V][V] = { 0,1,0,0,0,0,0,1,0,0, 1,0,0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0,0,0, 0,0,0,0,1,0,0,0,0,0,
  53. 0,0,0,1,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0, 0,0,1,0,0,1,0,0,0,0, 1,1,0,0,0,0,0,0,1,0,
  54. 0,0,0,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0 };
  55.  
  56. void spojneSkl() {
  57. //poczatek - 0 odwiedzonych wierzcholkow
  58. bool alrdyvisited[V];
  59. for (int i = 0; i < V; ++i)
  60. alrdyvisited[i] = false;
  61.  
  62. int apex = 0;
  63. alrdyvisited[apex] = true;
  64.  
  65. while (apex < V)
  66. {
  67. cout << "Graf BFS spojny od wierzcholka: " << apex << endl;
  68.  
  69. queue<int> que;
  70. que.push(apex);
  71.  
  72. while (!que.empty())
  73. {
  74. int visited = que.front();
  75. que.pop();
  76. cout << visited << ' ';
  77.  
  78. alrdyvisited[visited] = true;
  79.  
  80. for (int vertex = 0; vertex < V; ++vertex)
  81. {
  82. if (G[vertex][visited] && !alrdyvisited[vertex])
  83. {
  84. que.push(vertex);
  85. alrdyvisited[vertex] = true;
  86. }
  87. }
  88. }
  89.  
  90. cout << endl;
  91.  
  92. for (apex = 0; apex < V; ++apex)
  93. {
  94. if (!alrdyvisited[apex])
  95. break;
  96. }
  97. }
  98. }
  99.  
  100. void graf() { //wyswietlenie grafu
  101.  
  102. for (int i = 0; i < V; ++i)
  103. {
  104. for (int j = 0; j < V; ++j)
  105. {
  106. cout << G[i][j] << ' ';
  107. }
  108. cout << endl;
  109. }
  110.  
  111. }
  112.  
  113. void zadanie2() {
  114. graf();
  115. spojneSkl();
  116. }
  117.  
  118. int main(int argc, char** argv)
  119. {
  120. cout << "Zadanie 1" << endl; zadanie1();
  121. cout << "Zadanie 2" << endl; zadanie2();
  122. //system("PAUSE")
  123. return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement