Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string funkcja(rekord* &lista, string n, char jakisznak, unsigned& ileznakow)
- {
- rekord* nowy = new rekord; // alokacja pamięci na nowy rekord
- // przypisywanie wartości z funkcji do nowego rekordu:
- nowy->liczba = n.size();
- nowy->napis = n;
- nowy->znak = n[0];
- nowy->next = nullptr;
- ileznakow = 0; // pobieranie do zmiennej liczby wystąpień znaku "jakisznak"
- if(nowy->znak == jakisznak)
- ++ileznakow;
- unsigned licznik = 1;
- // jeżeli lista jest dotychczas pusta:
- if(lista == nullptr)
- lista = nowy;
- // jeżeli lista nie jest pusta (dopisywanie elementu na koniec)
- else
- {
- ++licznik;
- rekord* tmp = lista; // tworzenie zmiennej tymczasowej (aby nie nadpisywać listy)
- if(tmp->znak == jakisznak)
- ++ileznakow;
- // pętla szukająca końca listy
- while(tmp->next) // dopóki istnieje następny element...
- {
- ++licznik;
- tmp = tmp->next; // ... przejdź do niego
- if(tmp->znak == jakisznak)
- ++ileznakow;
- }
- tmp->next = nowy; // dopisywanie na koniec listy nowo utworzonego elementu
- }
- // druga część funkcji (usuwanie elementu) - wykonuje się tylko gdy liczba elementów jest co najmniej równa 2
- if(licznik >= 2)
- {
- bool pf = lista->liczba > lista->next->liczba; // zmienna przechowująca informację czy pierwszy element ma dłuższy napis niż drugi element
- string zwracany; // utworzenie zmiennej, która ma przechowywać dłuższy napis z dwóch pierwszych elementów (będzie on kasowany, więc musimy go gdzieś przechować)
- if(pf) // jeżeli napis w pierwszym elemencie jest dłuższy...
- {
- zwracany = lista->napis;
- lista = lista->next; // nadpisanie na miejscu pierwszego elementu jego syna (w ten sposób pozbywamy się pierwszego elementu)
- }
- // analogicznie jak wyżej:
- else
- {
- zwracany = lista->next->napis;
- lista->next = lista->next->next;
- }
- return zwracany;
- }
- return ""; // jeżeli lista posiada mniej niż dwa elementy, zwracamy pusty napis
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement