This shows you the differences between two versions of the page.
sd-ca:laboratoare:lab-02 [2025/03/10 23:15] roberto_giulio.pal [Exerciții] |
sd-ca:laboratoare:lab-02 [2025/03/18 16:19] (current) andrei.pirlea [LinkedList] |
||
---|---|---|---|
Line 52: | Line 52: | ||
* ''<nowiki>struct Node* remove_nth_node(struct LinkedList* list, int n);</nowiki>'' șterge și întoarce al ''n''-lea element al listei. Operația presupune modificarea listei astfel încât între nodurile vecine celui eliminat să se refacă legaturile pentru a permite listei să funcționeze în continuare. Daca nu există un nod următor, ''head'' va deveni NULL, iar lista va fi goală. Dacă nodul eliminat era ''head-ul'' listei, atunci succesorul său îi va lua locul. Analog pentru ultimul nod, însă în această situație, nodul precedent devine ''tail''. **Atentie!** Funcția doar returnează nodul eliminat din listă, deci rămâne de datoria voastră să eliberați memoria ocupată de nodul obținut în urma apelului funcției. //Complexitate: ''O(n)''. Dacă se șterge primul nod, se obține o complexitate mai bună: ''O(1)''. Aceeași complexitate se obține și dacă lista este dublu înlănțuită și se șterge ultimul nod.// | * ''<nowiki>struct Node* remove_nth_node(struct LinkedList* list, int n);</nowiki>'' șterge și întoarce al ''n''-lea element al listei. Operația presupune modificarea listei astfel încât între nodurile vecine celui eliminat să se refacă legaturile pentru a permite listei să funcționeze în continuare. Daca nu există un nod următor, ''head'' va deveni NULL, iar lista va fi goală. Dacă nodul eliminat era ''head-ul'' listei, atunci succesorul său îi va lua locul. Analog pentru ultimul nod, însă în această situație, nodul precedent devine ''tail''. **Atentie!** Funcția doar returnează nodul eliminat din listă, deci rămâne de datoria voastră să eliberați memoria ocupată de nodul obținut în urma apelului funcției. //Complexitate: ''O(n)''. Dacă se șterge primul nod, se obține o complexitate mai bună: ''O(1)''. Aceeași complexitate se obține și dacă lista este dublu înlănțuită și se șterge ultimul nod.// | ||
- | * ''<nowiki>int get_size(struct LinkedList* list);</nowiki>'' întoarce numărul curent de elemente stocate în listă. //Complexitate: ''O(1)''// | + | * ''<nowiki>int get_size(struct LinkedList* list);</nowiki>'' - întoarce numărul curent de elemente stocate în listă. |
+ | |||
+ | //Complexitate: ''O(1)'' - DACA LISTA CONTINE CAMPUL SIZE IN STRUCTURA// | ||
+ | |||
+ | //Complexitate: ''O(n)'' - trebuie parcursa toata lista pentru a afla numarul de noduri // | ||
<note important> | <note important> | ||
Line 106: | Line 110: | ||
</note> | </note> | ||
- | {{:sd-ca:laboratoare:lab_2:lab02_skel_2024.zip|Scheletul de laborator}} | + | {{:sd-ca:laboratoare:lab_2:skel_lab2-2025.zip|Scheletul de laborator}} |
Enunțul problemei îl găsiți pe Devmind, unde veți și încărca soluțiile voastre. | Enunțul problemei îl găsiți pe Devmind, unde veți și încărca soluțiile voastre. |