Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <queue>
- using namespace std;
- //Zadanie 1
- const int N = 6; //maksymalny rozmiar kolejki
- int kolejka[N]; //kolejka
- int QueueSize = 0;
- void dodaj(int v) { //v - wartość do wstawienia
- if (QueueSize < N)
- {
- kolejka[QueueSize] = v;
- if (QueueSize > 0)
- {
- int temp = QueueSize;
- while (kolejka[(temp - 1) / 2] < kolejka[temp])
- {
- swap(kolejka[(temp - 1) / 2], kolejka[temp]);
- temp = (temp - 1) / 2;
- }
- }
- ++QueueSize;
- }
- else
- {
- cout << "Kolejka pełna." << endl;
- }
- }
- void print() { //wyświetla stan kolejki
- cout << "Kolejka: ";
- for (int i = 0; i < QueueSize; ++i)
- cout << kolejka[i] << ' ';
- cout << endl;
- }
- void zadanie1() {
- dodaj(5); print(); dodaj(3); print(); dodaj(8); print(); dodaj(6); print();
- dodaj(2); print(); dodaj(5); print(); dodaj(7); print();
- }
- //Zadanie 2
- const int V = 10;
- 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,
- 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,
- 0,0,0,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0 };
- void spojneSkl() {
- //poczatek - 0 odwiedzonych wierzcholkow
- bool alrdyvisited[V];
- for (int i = 0; i < V; ++i)
- alrdyvisited[i] = false;
- int apex = 0;
- alrdyvisited[apex] = true;
- while (apex < V)
- {
- cout << "Graf BFS spojny od wierzcholka: " << apex << endl;
- queue<int> que;
- que.push(apex);
- while (!que.empty())
- {
- int visited = que.front();
- que.pop();
- cout << visited << ' ';
- alrdyvisited[visited] = true;
- for (int vertex = 0; vertex < V; ++vertex)
- {
- if (G[vertex][visited] && !alrdyvisited[vertex])
- {
- que.push(vertex);
- alrdyvisited[vertex] = true;
- }
- }
- }
- cout << endl;
- for (apex = 0; apex < V; ++apex)
- {
- if (!alrdyvisited[apex])
- break;
- }
- }
- }
- void graf() { //wyswietlenie grafu
- for (int i = 0; i < V; ++i)
- {
- for (int j = 0; j < V; ++j)
- {
- cout << G[i][j] << ' ';
- }
- cout << endl;
- }
- }
- void zadanie2() {
- graf();
- spojneSkl();
- }
- int main(int argc, char** argv)
- {
- cout << "Zadanie 1" << endl; zadanie1();
- cout << "Zadanie 2" << endl; zadanie2();
- //system("PAUSE")
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement