Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- struct obywatel {
- std::string nazwisko;
- uint64_t pesel;
- obywatel* nastepnyObywatel;
- };
- void dodajNaPoczatek(const std::string &nazwisko, uint64_t pesel, obywatel* &lista) {
- obywatel* nowy = new obywatel;
- nowy->nazwisko = nazwisko;
- nowy->pesel = pesel;
- nowy->nastepnyObywatel = lista;
- lista = nowy;
- }
- void wyswietlObywateli(const obywatel* lista) {
- while (lista != nullptr) {
- std::cout << lista->nazwisko << " " << lista->pesel << std::endl;
- lista = lista->nastepnyObywatel;
- }
- }
- void dodajNaKoniec(const std::string &nazwisko, uint64_t pesel, obywatel* &lista) {
- if (lista == nullptr) {
- lista = new obywatel{ nazwisko, pesel, nullptr };
- }
- else {
- obywatel* lista2 = lista;
- while (lista2->nastepnyObywatel != nullptr)
- lista2 = lista2->nastepnyObywatel;
- lista2->nastepnyObywatel = new obywatel{ nazwisko, pesel, nullptr };
- }
- }
- void wyczyscListe(obywatel* &lista) {
- obywatel* tmp;
- while (lista != nullptr) {
- tmp = lista->nastepnyObywatel;
- delete lista;
- lista = tmp;
- }
- }
- void usunObywatela(uint64_t pesel, obywatel* &lista) {
- obywatel* wsk = lista;
- while (wsk != nullptr) {
- if (wsk->pesel == pesel) {
- obywatel* tmp = wsk->nastepnyObywatel;
- delete wsk;
- wsk = tmp;
- lista = wsk;
- continue;
- }
- while (wsk != nullptr && wsk->nastepnyObywatel != nullptr) {
- if (wsk->nastepnyObywatel->pesel == pesel) {
- obywatel* tmp = wsk->nastepnyObywatel->nastepnyObywatel;
- delete wsk->nastepnyObywatel;
- wsk->nastepnyObywatel = tmp;
- }
- wsk = wsk->nastepnyObywatel;
- }
- return;
- }
- }
- void dodajObywatela(const std::string& nazwisko, uint64_t pesel, obywatel* &lista) {
- if (lista != nullptr) {
- if (lista->nazwisko > nazwisko) {
- obywatel* tmp = new obywatel{ nazwisko, pesel, lista };
- lista = tmp;
- return;
- }
- obywatel* wsk = lista;
- while (wsk->nastepnyObywatel != nullptr) {
- if (wsk->nastepnyObywatel->nazwisko > nazwisko) {
- wsk->nastepnyObywatel = new obywatel{ nazwisko,pesel,wsk->nastepnyObywatel };
- return;
- }
- wsk = wsk->nastepnyObywatel;
- }
- wsk->nastepnyObywatel = new obywatel{ nazwisko, pesel, nullptr };
- }
- else lista = new obywatel{ nazwisko, pesel, nullptr };
- }
- int main() {
- obywatel* pierwszy = nullptr;
- /*dodajNaPoczatek("Nowak", 100, pierwszy);
- dodajNaKoniec("Nowaka", 101, pierwszy);
- dodajNaKoniec("Nowakb", 102, pierwszy);
- dodajNaKoniec("Nowakc", 103, pierwszy);
- dodajNaPoczatek("Nowakd", 104, pierwszy);
- */
- //usunObywatela(104, pierwszy);
- //wyswietlObywateli(pierwszy);
- dodajObywatela("Nowak", 100, pierwszy);
- dodajObywatela("Nowakb", 102, pierwszy);
- dodajObywatela("Nowaka", 104, pierwszy);
- dodajObywatela("Kowalski", 99, pierwszy);
- dodajObywatela("Nowakal", 95, pierwszy);
- wyczyscListe(pierwszy);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement