Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include<vector>
- using namespace std;
- struct Node
- {
- int value;
- Node *next;
- };
- void delete_Tail(Node *&head);
- int broj_elemenata(Node *&head);
- void pretrazivanje(Node *&head);
- void brisanje_n_elementa(Node *&head);
- void insertElementFront(Node *&head, int value)
- {
- Node *temp = new Node;
- temp->value = value;
- temp->next = head;
- head = temp;
- }
- void ispis_elemenata(Node *head) {
- Node *temp = head;
- if (temp == nullptr) {
- cout << "Nema elemenata" << endl;
- }else {
- while (temp != NULL){
- cout << temp->value << endl;
- temp = temp->next;
- }
- }
- }
- void insertElementEnd(Node *&head, int value) {
- Node *n = new Node;
- n->value = value;
- n->next = nullptr;
- Node *temp = head;
- if (temp == nullptr) {
- temp = n;
- head = temp;
- }
- else
- {
- while (temp->next != NULL){
- temp = temp->next;
- }
- temp->next = n;
- }
- }
- void menu(Node *&head) {
- int izbor;
- int x;
- do {
- system("cls");
- cout << "Izaberite opciju:" << endl << "1. Unos elemenata na pocetak";
- cout << endl << "2. Unos elemenata na kraj" << endl;
- cout << "3. Ispis elemenata" << endl;
- cout << "4. Delete tail" << endl;
- cout << "5. Broj elemenata" << endl;
- cout << "6. Pretrazivanje" << endl;
- cout << "7. Brisanje po n elementu" << endl;
- cout << "8. Izlaz" << endl;
- cin >> izbor;
- switch (izbor) {
- case 1:do {
- system("CLS");
- cout << "Unesite element ili 0 za kraj" << endl;
- cin >> x;
- if (x == 0) {
- break;
- }
- insertElementFront(head, x);
- } while (x != 0);
- break;
- case 2:do {
- system("CLS");
- cout << "Unesite element ili 0 za kraj" << endl;
- cin >> x;
- if (x == 0) {
- break;
- }
- insertElementEnd(head, x);
- } while (x != 0);
- break;
- case 3:ispis_elemenata(head);
- system("Pause");
- break;
- case 4:delete_Tail(head);
- break;
- case 5:int a;
- a = broj_elemenata(head);
- cout << "Broj elemenata: " << a << endl;
- system("pause");
- break;
- case 6:
- pretrazivanje(head);
- system("pause");
- break;
- case 7:
- brisanje_n_elementa(head);
- break;
- case 8:
- break;
- }
- } while (izbor != 8);
- }
- void delete_Tail(Node *&head) {
- Node *temp = head;
- Node *pom = head;
- if (temp->next == NULL)
- {
- delete(temp);
- head = NULL;
- }
- else
- {
- while (temp->next != NULL)
- {
- pom = temp;
- temp = temp->next;
- }
- delete(temp);
- pom->next = nullptr;
- }
- }
- int broj_elemenata(Node *&head) {
- Node *temp = head;
- int counter = 0;
- if (temp == nullptr) {
- return 0;
- }
- else {
- while (temp != NULL) {
- counter++;
- temp = temp->next;
- }
- }
- return counter;
- }
- void pretrazivanje(Node *&head) {
- Node *temp = head;
- int trazeni_broj;
- int counter=0;
- vector<int>counteri;
- cout << "Koji broj zelite naci";
- cin >> trazeni_broj;
- if (temp == nullptr) {
- cout << "Lista je prazna" << endl;
- }
- else {
- while (temp != NULL) {
- counter++;
- if (temp->value == trazeni_broj) {
- counteri.push_back(counter);
- }
- temp = temp->next;
- }
- }
- cout << "Taj element se nalazi" << counteri.size() << " puta u listi!" << endl;
- for (int i = 0; i < counteri.size(); i++) {
- cout << "Taj broj se nalazi na mjestu:"<< counteri[i] << endl;
- }
- }
- void brisanje_n_elementa(Node *&head) {
- {
- Node *temp0 = head;
- Node *temp1 = head;
- Node *temp2 = head;
- int unos;
- cout << "Indeks elementa za brisanje: " << endl;
- cin >> unos;
- if (temp0->next == NULL)
- {
- delete(temp0);
- head = NULL;
- }
- else
- {
- for (int i = -1; i < unos; i++) {
- temp2 = temp1;
- temp1 = temp0;
- temp0 = temp0->next;
- }
- delete(temp1);
- temp2->next = temp0;
- }
- }
- }
- int main()
- {
- Node *head = nullptr;
- int x;
- menu(head);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement