Advertisement
Guest User

Cały kod

a guest
Jan 23rd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4. #include <time.h>
  5.  
  6. struct List
  7. {
  8. std::unique_ptr<List> next;
  9. int value;
  10. List(int value) : value(value) {};
  11. };
  12. void drukujListe(List * head)
  13. {
  14. if (head->next) {
  15. std::cout << head->value << " ";
  16. return drukujListe(head->next.get());
  17.  
  18. }
  19. else std::cout << head->value<<" ";
  20. }
  21. void addBackToList(std::unique_ptr<List>& list, int value)
  22. {
  23. if (list) {
  24. addBackToList(list->next, value);
  25. }
  26. else {
  27. list = std::make_unique<List>(value);
  28. }
  29. }
  30. void addFrontToList(std::unique_ptr<List>& list, int value)
  31. {
  32.  
  33. std::unique_ptr<List>& tmp = std::make_unique<List>(value);
  34. if (list) {
  35. tmp->next = std::move(list);
  36. }
  37. list = std::move(tmp);
  38. }
  39. bool isMember(std::unique_ptr<List>& list, int value) {
  40.  
  41. if (list->next) {
  42. if (list->value == value) {
  43. return isMember(list->next, value) + 1;
  44. }
  45. else return isMember(list->next, value);
  46. }
  47. else {
  48. if (list->value == value) {
  49. return 1;
  50. }
  51. else return 0;
  52. }
  53. }
  54. void oneElement(std::unique_ptr<List>& list, int number) {
  55. if (number==1){
  56. std::cout << list->value;
  57. }
  58. if (list->next) {
  59.  
  60. oneElement(list->next, number - 1);
  61. }
  62. }
  63.  
  64. std::vector<std::vector<int>> gnp(int n, float p, std::vector<std::vector<int>>& v)
  65. {
  66. float wynik = 0;
  67. srand(time(NULL));
  68. for (int i = 0; i<n; i++)
  69. {
  70. std::vector<int>pom;
  71. for (int j = 0; j<n; j++)
  72. {
  73. int x = 0;
  74. pom.push_back(x);
  75. }
  76. v.push_back(pom);
  77. }
  78. for (int i = 0; i < n; i++)
  79. for (int j = i + 1; j < n; j++)
  80. {
  81. wynik = rand() % 10;
  82. if ((wynik / 10) < p)
  83. {
  84. v[i][j] = 1;
  85. v[j][i] = 1;
  86. }
  87. }
  88. return v;
  89. }
  90. void displayGNP(const std::vector<std::vector<int>> & matrix)
  91. {
  92. for (int i = 0; i<matrix.size(); i++)
  93. {
  94. for (int j = 0; j<matrix[0].size(); j++)
  95. {
  96. std::cout << matrix[i][j] << " ";
  97. }
  98. std::cout << std::endl;
  99. }
  100. }
  101.  
  102. std::vector<List*> GNPtoLIST(const std::vector<std::vector<int>> & matrix) {
  103. std::vector<List*> vlist;
  104. std::unique_ptr<List> list;
  105.  
  106. for (int i = 0; i<5; i++)
  107.  
  108. {
  109. addBackToList(list, 5);
  110. }
  111.  
  112. vlist.push_back(list.get());
  113. list.reset(nullptr);
  114. return vlist;
  115. }
  116. void wyswietlGNP(std::vector<List*>vlist) {
  117. for (int i = 0; i<vlist.size(); i++)
  118. {
  119. drukujListe(vlist[i]);
  120. std::cout << std::endl;
  121. }
  122. }
  123.  
  124. void zadanie1() {
  125. std::cout << std::endl << "Zadanie 1" << std::endl << std::endl;
  126.  
  127. std::unique_ptr<List> list;
  128. addBackToList(list, 4);
  129. addBackToList(list, 2);
  130. addBackToList(list, 7);
  131. addBackToList(list, 11);
  132. drukujListe(list.get());
  133. }
  134. void zadanie2() {
  135. std::cout << std::endl << std::endl << "Zadanie 2" << std::endl << std::endl;
  136.  
  137. std::unique_ptr<List> list;
  138. addBackToList(list, 4);
  139. addBackToList(list, 2);
  140. addBackToList(list, 7);
  141. addBackToList(list, 11);
  142. drukujListe(list.get());
  143. }
  144. void zadanie3() {
  145. std::cout << std::endl << std::endl << "Zadanie 3" << std::endl << std::endl;
  146.  
  147. std::unique_ptr<List> list;
  148.  
  149. addFrontToList(list, 4);
  150. addFrontToList(list, 2);
  151. addFrontToList(list, 7);
  152. addFrontToList(list, 11);
  153.  
  154. drukujListe(list.get());
  155. }
  156. void zadanie4(){
  157. std::cout << std::endl << std::endl << "Zadanie 4" << std::endl << std::endl;
  158. std::unique_ptr<List> list;
  159.  
  160. addFrontToList(list, 4);
  161. addFrontToList(list, 2);
  162. addFrontToList(list, 7);
  163. addFrontToList(list, 11);
  164.  
  165. drukujListe(list.get());
  166. int x = 11;
  167. if (isMember(list, x)) {
  168. std::cout << "Liczba " << x << " nalezy do tej listy";
  169. }
  170. else {
  171. std::cout << "Liczba " << x << " nie nalezy do tej listy";
  172.  
  173. }
  174. }
  175. void zadanie5() {
  176. std::cout << std::endl << std::endl << "Zadanie 5" << std::endl << std::endl;
  177.  
  178. std::vector<std::vector<int>>v;
  179. gnp(5, 0.5, v);
  180. displayGNP(v);
  181. std::cout << std::endl;
  182. GNPtoLIST(v);
  183. //wyswietlGNP(GNPtoLIST(v));
  184.  
  185.  
  186. }
  187. void zadanie6() {
  188. std::cout << std::endl << std::endl << "Zadanie 5" << std::endl << std::endl;
  189.  
  190. std::vector<std::vector<int>>v;
  191. gnp(5, 0.5, v);
  192. displayGNP(v);
  193. std::cout << std::endl;
  194. GNPtoLIST(v);
  195. wyswietlGNP(GNPtoLIST(v));
  196. }
  197. int main() {
  198. zadanie1();
  199. //zadanie2();
  200. //zadanie3();
  201. //zadanie4();
  202. //zadanie5();
  203. //zadanie6();
  204. std::cin.ignore(2);
  205.  
  206. return 0;
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement