Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <memory>
- #include <vector>
- #include <time.h>
- struct List
- {
- std::unique_ptr<List> next;
- int value;
- List(int value) : value(value) {};
- };
- void drukujListe(List * head)
- {
- if (head->next) {
- std::cout << head->value << " ";
- return drukujListe(head->next.get());
- }
- else std::cout << head->value<<" ";
- }
- void addBackToList(std::unique_ptr<List>& list, int value)
- {
- if (list) {
- addBackToList(list->next, value);
- }
- else {
- list = std::make_unique<List>(value);
- }
- }
- void addFrontToList(std::unique_ptr<List>& list, int value)
- {
- std::unique_ptr<List>& tmp = std::make_unique<List>(value);
- if (list) {
- tmp->next = std::move(list);
- }
- list = std::move(tmp);
- }
- bool isMember(std::unique_ptr<List>& list, int value) {
- if (list->next) {
- if (list->value == value) {
- return isMember(list->next, value) + 1;
- }
- else return isMember(list->next, value);
- }
- else {
- if (list->value == value) {
- return 1;
- }
- else return 0;
- }
- }
- void oneElement(std::unique_ptr<List>& list, int number) {
- if (number==1){
- std::cout << list->value;
- }
- if (list->next) {
- oneElement(list->next, number - 1);
- }
- }
- std::vector<std::vector<int>> gnp(int n, float p, std::vector<std::vector<int>>& v)
- {
- float wynik = 0;
- srand(time(NULL));
- for (int i = 0; i<n; i++)
- {
- std::vector<int>pom;
- for (int j = 0; j<n; j++)
- {
- int x = 0;
- pom.push_back(x);
- }
- v.push_back(pom);
- }
- for (int i = 0; i < n; i++)
- for (int j = i + 1; j < n; j++)
- {
- wynik = rand() % 10;
- if ((wynik / 10) < p)
- {
- v[i][j] = 1;
- v[j][i] = 1;
- }
- }
- return v;
- }
- void displayGNP(const std::vector<std::vector<int>> & matrix)
- {
- for (int i = 0; i<matrix.size(); i++)
- {
- for (int j = 0; j<matrix[0].size(); j++)
- {
- std::cout << matrix[i][j] << " ";
- }
- std::cout << std::endl;
- }
- }
- std::vector<List*> GNPtoLIST(const std::vector<std::vector<int>> & matrix) {
- std::vector<List*> vlist;
- std::unique_ptr<List> list;
- for (int i = 0; i<5; i++)
- {
- addBackToList(list, 5);
- }
- vlist.push_back(list.get());
- list.reset(nullptr);
- return vlist;
- }
- void wyswietlGNP(std::vector<List*>vlist) {
- for (int i = 0; i<vlist.size(); i++)
- {
- drukujListe(vlist[i]);
- std::cout << std::endl;
- }
- }
- void zadanie1() {
- std::cout << std::endl << "Zadanie 1" << std::endl << std::endl;
- std::unique_ptr<List> list;
- addBackToList(list, 4);
- addBackToList(list, 2);
- addBackToList(list, 7);
- addBackToList(list, 11);
- drukujListe(list.get());
- }
- void zadanie2() {
- std::cout << std::endl << std::endl << "Zadanie 2" << std::endl << std::endl;
- std::unique_ptr<List> list;
- addBackToList(list, 4);
- addBackToList(list, 2);
- addBackToList(list, 7);
- addBackToList(list, 11);
- drukujListe(list.get());
- }
- void zadanie3() {
- std::cout << std::endl << std::endl << "Zadanie 3" << std::endl << std::endl;
- std::unique_ptr<List> list;
- addFrontToList(list, 4);
- addFrontToList(list, 2);
- addFrontToList(list, 7);
- addFrontToList(list, 11);
- drukujListe(list.get());
- }
- void zadanie4(){
- std::cout << std::endl << std::endl << "Zadanie 4" << std::endl << std::endl;
- std::unique_ptr<List> list;
- addFrontToList(list, 4);
- addFrontToList(list, 2);
- addFrontToList(list, 7);
- addFrontToList(list, 11);
- drukujListe(list.get());
- int x = 11;
- if (isMember(list, x)) {
- std::cout << "Liczba " << x << " nalezy do tej listy";
- }
- else {
- std::cout << "Liczba " << x << " nie nalezy do tej listy";
- }
- }
- void zadanie5() {
- std::cout << std::endl << std::endl << "Zadanie 5" << std::endl << std::endl;
- std::vector<std::vector<int>>v;
- gnp(5, 0.5, v);
- displayGNP(v);
- std::cout << std::endl;
- GNPtoLIST(v);
- //wyswietlGNP(GNPtoLIST(v));
- }
- void zadanie6() {
- std::cout << std::endl << std::endl << "Zadanie 5" << std::endl << std::endl;
- std::vector<std::vector<int>>v;
- gnp(5, 0.5, v);
- displayGNP(v);
- std::cout << std::endl;
- GNPtoLIST(v);
- wyswietlGNP(GNPtoLIST(v));
- }
- int main() {
- zadanie1();
- //zadanie2();
- //zadanie3();
- //zadanie4();
- //zadanie5();
- //zadanie6();
- std::cin.ignore(2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement