Differences

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

Link to this comparison view

sd-ca:laboratoare:lab-02 [2023/03/09 00:27]
andrei.otetea [Exerciții]
sd-ca:laboratoare:lab-02 [2025/03/18 16:19] (current)
andrei.pirlea [LinkedList]
Line 3: Line 3:
 Responsabili Responsabili
  
-  * [[mailto:andreiotetea23@gmail.com|Andrei ​Otetea]] +  * [[mailto:andreipirlea03@gmail.com|Andrei ​Pîrlea]] 
-  * [[mailto:teofil.sturzoiu@gmail.com|Ioan-Teofil Sturzoiu]]+  * [[mailto:stef.dascalu@gmail.com|Ștefan-Teodor Dascălu]]
  
  
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 103: Line 107:
  
 <​note>​ <​note>​
-Trebuie să vă creați cont de [[https://lambdachecker.io Lambda Checker]], dacă nu v-ați creat deja, pe care îl veți folosi la SD pe toată durata semestrului.+Trebuie să vă creați cont de [[https://code.devmind.ro/ ​Devmind]], dacă nu v-ați creat deja, pe care îl veți folosi la SD pe toată durata semestrului.
 </​note>​ </​note>​
  
-{{:​sd-ca:​laboratoare:​lab02_skel_2023_1.zip|Scheletul de laborator}}+{{:​sd-ca:​laboratoare:​lab_2:​skel_lab2-2025.zip|Scheletul de laborator}}
  
-Enunțurile problemelor le găsiți pe Lambda Checker[[https://​beta.lambdachecker.io/​contest/​26| aici]]. +Enunțul problemei îl găsiți pe Devmindunde veți și încărca soluțiile voastre.
-Tot acolo veți și încărca soluțiile voastre.+
  
 ===== Interviu ===== ===== Interviu =====
Line 115: Line 118:
 Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship,​ part-time, full-time, etc.) din materia prezentată în cadrul laboratorului. Această secțiune nu este punctată și încearcă să vă facă o oarecare idee a tipurilor de întrebări pe care le puteți întâlni la un job interview (internship,​ part-time, full-time, etc.) din materia prezentată în cadrul laboratorului.
  
-  ​- Implementați o funcție de ștergere a duplicatelor dintr-o listă simplu înlănțuită sortată. +  - Implementați o funcție de detectare a unui ciclu într-o listă simplu înlănțuită:​[[https://​leetcode.com/​problems/​linked-list-cycle/​ |Linked List Cycle]]
-  ​- Implementați o funcție de detectare ​(+ înlăturare) ​a unui ciclu într-o listă simplu înlănțuită. +  - Eliminarea ​celui de-al k-lea nod de la sfârșit spre început într-o listă simplu înlănțuită:​[[https://​leetcode.com/​problems/​remove-nth-node-from-end-of-list|Remove Nth Node From End of List]]
-  - Găsirea ​celui de-al k-lea nod de la sfârșit spre început într-o listă simplu înlănțuită. +  - Inversarea unei liste simple înlățuite:​ [[https://​leetcode.com/​problems/​reverse-linked-list| Reverse Linked List]].
 Și multe altele... Și multe altele...
  
sd-ca/laboratoare/lab-02.1678314422.txt.gz · Last modified: 2023/03/09 00:27 by andrei.otetea
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