Advertisement
Guest User

Ponedjeljak

a guest
Mar 25th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include<vector>
  4. using namespace std;
  5.  
  6. struct Node
  7. {
  8. int value;
  9. Node *next;
  10. };
  11. void delete_Tail(Node *&head);
  12. int broj_elemenata(Node *&head);
  13. void pretrazivanje(Node *&head);
  14. void brisanje_n_elementa(Node *&head);
  15. void insertElementFront(Node *&head, int value)
  16. {
  17. Node *temp = new Node;
  18. temp->value = value;
  19. temp->next = head;
  20. head = temp;
  21. }
  22. void ispis_elemenata(Node *head) {
  23. Node *temp = head;
  24.  
  25. if (temp == nullptr) {
  26. cout << "Nema elemenata" << endl;
  27. }else {
  28. while (temp != NULL){
  29. cout << temp->value << endl;
  30. temp = temp->next;
  31. }
  32. }
  33.  
  34. }
  35. void insertElementEnd(Node *&head, int value) {
  36. Node *n = new Node;
  37. n->value = value;
  38. n->next = nullptr;
  39.  
  40. Node *temp = head;
  41.  
  42. if (temp == nullptr) {
  43. temp = n;
  44. head = temp;
  45. }
  46. else
  47. {
  48. while (temp->next != NULL){
  49. temp = temp->next;
  50. }
  51. temp->next = n;
  52. }
  53. }
  54. void menu(Node *&head) {
  55. int izbor;
  56. int x;
  57. do {
  58. system("cls");
  59. cout << "Izaberite opciju:" << endl << "1. Unos elemenata na pocetak";
  60. cout << endl << "2. Unos elemenata na kraj" << endl;
  61. cout << "3. Ispis elemenata" << endl;
  62. cout << "4. Delete tail" << endl;
  63. cout << "5. Broj elemenata" << endl;
  64. cout << "6. Pretrazivanje" << endl;
  65. cout << "7. Brisanje po n elementu" << endl;
  66. cout << "8. Izlaz" << endl;
  67.  
  68. cin >> izbor;
  69. switch (izbor) {
  70. case 1:do {
  71. system("CLS");
  72. cout << "Unesite element ili 0 za kraj" << endl;
  73. cin >> x;
  74. if (x == 0) {
  75. break;
  76. }
  77. insertElementFront(head, x);
  78. } while (x != 0);
  79. break;
  80. case 2:do {
  81. system("CLS");
  82. cout << "Unesite element ili 0 za kraj" << endl;
  83. cin >> x;
  84. if (x == 0) {
  85. break;
  86. }
  87. insertElementEnd(head, x);
  88. } while (x != 0);
  89. break;
  90. case 3:ispis_elemenata(head);
  91. system("Pause");
  92. break;
  93. case 4:delete_Tail(head);
  94. break;
  95. case 5:int a;
  96. a = broj_elemenata(head);
  97. cout << "Broj elemenata: " << a << endl;
  98. system("pause");
  99. break;
  100. case 6:
  101. pretrazivanje(head);
  102. system("pause");
  103. break;
  104. case 7:
  105. brisanje_n_elementa(head);
  106. break;
  107. case 8:
  108. break;
  109. }
  110. } while (izbor != 8);
  111. }
  112.  
  113. void delete_Tail(Node *&head) {
  114. Node *temp = head;
  115. Node *pom = head;
  116. if (temp->next == NULL)
  117. {
  118. delete(temp);
  119. head = NULL;
  120. }
  121. else
  122. {
  123. while (temp->next != NULL)
  124. {
  125. pom = temp;
  126. temp = temp->next;
  127. }
  128.  
  129. delete(temp);
  130. pom->next = nullptr;
  131.  
  132. }
  133. }
  134. int broj_elemenata(Node *&head) {
  135. Node *temp = head;
  136. int counter = 0;
  137. if (temp == nullptr) {
  138. return 0;
  139. }
  140. else {
  141. while (temp != NULL) {
  142. counter++;
  143. temp = temp->next;
  144. }
  145. }
  146. return counter;
  147. }
  148. void pretrazivanje(Node *&head) {
  149. Node *temp = head;
  150. int trazeni_broj;
  151. int counter=0;
  152. vector<int>counteri;
  153. cout << "Koji broj zelite naci";
  154.  
  155. cin >> trazeni_broj;
  156. if (temp == nullptr) {
  157. cout << "Lista je prazna" << endl;
  158. }
  159. else {
  160. while (temp != NULL) {
  161. counter++;
  162. if (temp->value == trazeni_broj) {
  163. counteri.push_back(counter);
  164. }
  165.  
  166. temp = temp->next;
  167. }
  168. }
  169. cout << "Taj element se nalazi" << counteri.size() << " puta u listi!" << endl;
  170.  
  171. for (int i = 0; i < counteri.size(); i++) {
  172. cout << "Taj broj se nalazi na mjestu:"<< counteri[i] << endl;
  173. }
  174.  
  175.  
  176. }
  177. void brisanje_n_elementa(Node *&head) {
  178. {
  179.  
  180. Node *temp0 = head;
  181. Node *temp1 = head;
  182. Node *temp2 = head;
  183. int unos;
  184. cout << "Indeks elementa za brisanje: " << endl;
  185. cin >> unos;
  186. if (temp0->next == NULL)
  187. {
  188. delete(temp0);
  189. head = NULL;
  190. }
  191. else
  192. {
  193. for (int i = -1; i < unos; i++) {
  194. temp2 = temp1;
  195. temp1 = temp0;
  196. temp0 = temp0->next;
  197.  
  198. }
  199. delete(temp1);
  200. temp2->next = temp0;
  201.  
  202. }
  203. }
  204. }
  205. int main()
  206. {
  207. Node *head = nullptr;
  208. int x;
  209. menu(head);
  210. system("pause");
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement