Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:laboratoare:lab-02 [2025/03/11 00:16]
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>​
sd-ca/laboratoare/lab-02.1741644985.txt.gz · Last modified: 2025/03/11 00:16 by roberto_giulio.pal
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0