Categorieën: Alle - funkcija - implementacija

door Karlo Vidaković 11 jaren geleden

356

Mindomo mentalna mapa

Tento text popisuje implementaci seznamu zaměstnanců pomocí ukazatelů. Nejprve se seznam inicializuje nastavením ukazatele na NULL. Následně jsou definovány funkce pro manipulaci se seznamem, jako je mazání a vkládání prvků na konkrétní pozice.

Mindomo mentalna mapa

Glavni program

Implementacija zaglavlja liste pomocu polja

EndL()-funkcija koja vraca velicinu liste, tj broj zaposlenika tako sto ce vratiti zad_mjesto.
DeleteL(int p)-funkcija koja prolazi kroz listu te ukoliko naide na element na poziciji p brise ga, a sve elemente iza njega pomice za jedno mjesto nazad, zad_mjesto ce pokazivati na zad_mjesto-1
zamjena(int prethodni, int sljedeci)-funkcija koja prolazi kroz listu te ukoliko pronade element na poziciji prethodni i element na poziciji sljedeci mjenja im mjesta(kod mene ovo neradi)
RetrieveL(int p)-funkcija koja prolazi kroz listu te ukoliko se pozicija p podudara sa pozicijom u listi vraca zaposlenika na toj poziciji.
InsertL(char imeiprez[], datrod d, string radnomj)-funkcija koja dodaje element u listu, te pomice varijablu zad_mjesto za jedno mjesto dalje.
InitL()-funkcija koja inicira prazno polje tako sto postavlja varijablu zad_mjesto na 0(pokazuje zadnje mjesto u praznom polju).

bris_rad_mj()-u ovoj funkciji korisnik odabire radno mjesto prema kojem ce se brisati zaposlenici. Prolazi se kroz listu, te svak izaposlenik sa trazenim radnim mjestom ce se izbrisati pomocu funkcije DeleteL.

bris_oib()-u ovoj funkciji se na korisnikov unos OIB-a pretrazuje lista od prvog clana, do zadnjeg. Ako je uneseni OIB jedak kao OIB nekog od zaposlenika, zaposlenik na toj poziciji ce biti izbrisan pomocu funkcije DeleteL

Implementacija zaglavlja liste pomocu pokazivaca

EndL()-funkcija koja prolazi kroz listu, uvijek pokazuje na kraj liste te tako vraca broj elemenata koji se nalaze u listi.
DeleteL(int p)-funkcija koja prolazi kroz listu te ukoliko pozicija p odgovara nekoj poziciji u listi, brise element na toj poziciji.
zamjena(int prvi, int drugi)-funkcija kora prolazi kroz listu kako bi pronasla element na poziciji "prvi", a drugi put kako bi pronasla drugi element na poziciji "drugi". Kada ih pronade zamjeni mjesta zaposlenicima na tim pozicijama.
RetrieveL(int p)-prolazi kroz listu sve dok pozicija p nebude jednaka sa jednom pozicijom zaposlenika ili dok nedode do kraja liste
InitL()-inicira praznu listu, tj postavlja pokazivac sljedeci na NULL
InsertL(char imeiprez[], datrod d, string radnomj)-dodaje element na kraj liste, a pokazivac sljedeci se pomice za jedno mjesto dalje.

unoszaposlenika()-u ovoj funkciji unose se osnovne informacije o zaposleniku:ime i prezime, datum rodenja, radno mjesto te se automatski generira OIB u pomocne varijable, a te pomocne varijable ih prosljeduju funkciji InsertL.

razvrstavanje()- u ovoj funkciji se razvrstavaju uneseni zaposlenici prema OIB-u koristeci algoritam Quicksorta(funkcije pivot i qsort). Dakle tu sam korstio funkcije RetrieveL i zamjena.