1 / 10

Povezane strukture podataka (Poludinami č ke i dinami č ke strukture podataka)

Povezane strukture podataka (Poludinami č ke i dinami č ke strukture podataka). typedef struct cvor_st { struct cvor_st *sledeci; /* ... */ } JCVOR; JCVOR pocetakliste, *pocetak, *tekuci;. pocetakliste. pocetak. tekuci. OP ŠTI OBLIK JEDNOSTRUKO POVEZANE LISTE. pocetak.

keita
Download Presentation

Povezane strukture podataka (Poludinami č ke i dinami č ke strukture podataka)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Povezane strukture podataka(Poludinamičke i dinamičkestrukture podataka)

  2. typedef struct cvor_st { struct cvor_st *sledeci; /* ... */ } JCVOR; JCVOR pocetakliste, *pocetak, *tekuci; pocetakliste pocetak tekuci OPŠTI OBLIK JEDNOSTRUKO POVEZANE LISTE pocetak pocetakliste ... tekuci Jednostruko povezane liste - skup čvorova povezanih pokazivačima u jednom smeru. - svaki čvor je strukturna promenljiva - lista može da sadrži promenljiv broj čvorova

  3. novi = (JCVOR *)malloc(sizeof(JCVOR)); Operacije nad listom novi - umetanje čvora u povezanu listu - brisanje tekućeg čvora iz liste - pristup čvoru radi čitanja i upisa tekuci novi->sledeci = tekuci->sledeci; novi tekuci tekuci->sledeci = novi; novi tekuci

  4. JCVOR * umetni_cvor(JCVOR *listp) { JCVOR *novi; novi = (JCVOR *)malloc(sizeof (JCVOR)); if (novi != NULL); { novi->sledeci = listp->sledeci; listp->sledeci = novi; } return novi; } void brisi_cvor(JCVOR *listp) { JCVOR *priv; priv = listp->sledeci; listp->sledeci = listp->sledeci->sledeci; free (priv); }

  5. Ciklične jednostruko povezane liste pocetak->sledeci = pocetak;

  6. Upravljanje memorijom /* * strdup.c * * Napravi bafer odgovarajuce velicine i kopiraj u njega znakovni niz. */ #include <stdio.h> #include <stdlib.h> #include <string.h> char * strdup(const char *niz) { char *novi; novi = (char *)malloc(strlen(niz) + 1); return novi == NULL ? novi : strcpy(novi, niz); } int main () { char niz [] = "Probni niz!"; char *novi; printf ("\nPocetni niz : %s", niz); novi = strdup (niz); printf ("\nDuplirani niz: %s", novi); return EXIT_SUCCESS; }

  7. Primer: kartoteka

  8. Dvostruko povezane liste typedef struct dcvor_st { struct dcvor_st *sledeci, *prethodni; /* ... */ } DCVOR; DCVOR pocetakliste, *pocetak, *tekuci; OPŠTI OBLIK DVOSTRUKO POVEZANE LISTE pocetak pocetakliste ... ... tekuci

  9. DCVOR * umetni_dcvor(DCVOR *listp) { DCVOR *novi; novi = (DCVOR *)malloc(sizeof (DCVOR)); if (novi != NULL); { novi->prethodni = listp; novi->sledeci = listp->sledeci; listp->sledeci ->prethodni = novi; listp->sledeci = novi; } return novi; } void brisi_cvor(DCVOR *listp) { listp->prethodni->sledeci = listp->sledeci; listp->sledeci->prethodni = listp->prethodni; free (listp); }

  10. Ciklične dvostruko povezane liste CIKLIČNA LISTA pocetak

More Related