Differences

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

Link to this comparison view

sd-ca:laboratoare:lab-09 [2020/04/30 10:30]
teodor_adrian.mirea [Ștergerea]
sd-ca:laboratoare:lab-09 [2024/04/28 18:06] (current)
alin.ichim [Exerciții]
Line 2: Line 2:
  
 Responsabili Responsabili
-  * [[mailto:​amirea99@gmail.com|Adrian Mirea]] +  * [[alinichim49@gmail.com|Alin Ichim]] 
-  * [[mailto:​doringeman@gmail.com|Dorin-Andrei Geman]]+  * [[melih.riza@yahoo.com|Riza Melih]]
  
  
Line 57: Line 57:
 ==== Inserarea ==== ==== Inserarea ====
  
-Inserarea unui nod se faceîn funcție de rezultatul comparației cheilor, în subarborele stâng sau drept. Dacă arborele este vid, se creează un nod care devine nodul rădăcină al arborelui. În caz contrar, cheia se inserează ca fiu stâng sau fiu drept al unui nod din arbore.+Inserarea unui nod se face în funcție de rezultatul comparației cheilor, în subarborele stâng sau drept. Dacă arborele este vid, se creează un nod care devine nodul rădăcină al arborelui. În caz contrar, cheia se inserează ca fiu stâng sau fiu drept al unui nod din arbore.
  
 ==== Ștergerea ==== ==== Ștergerea ====
Line 70: Line 70:
 În cazul ștergerii unui nod frunză sau a unui nod având un singur succesor, legătura de la părintele nodului de șters este înlocuită prin legătura nodului de șters la succesorul său (**NULL** în cazul frunzelor). În cazul ștergerii unui nod frunză sau a unui nod având un singur succesor, legătura de la părintele nodului de șters este înlocuită prin legătura nodului de șters la succesorul său (**NULL** în cazul frunzelor).
  
-Eliminarea unui nod cu doi succesori se face prin înlocuirea sa cu nodul care are cea mai apropiată valoare de nodul șters. Acesta poate fi din extremitatea dreaptă a subarborelui stâng (**predecesorul**;​ se caută ​nodul cel mai mare nod din acest subarbore, adică "se merge" în dreapta până se ajunge la un nod cu cel mult un succesor, aflat evident în partea stângă, altfel am putea avansa în adâncime pe dreapta) sau nodul din extremitatea stânga a subarborelui drept (**succesorul**;​ se caută ​nodul cel mai mic nod din acest subarbore, adică "se merge" în stângă ​până se ajunge la un nod cu cel mult un succesor, aflat evident în partea dreaptă, altfel am putea avansa în adâncime pe stânga).+Eliminarea unui nod cu doi succesori se face prin înlocuirea sa cu nodul care are cea mai apropiată valoare de nodul șters. Acesta poate fi din extremitatea dreaptă a subarborelui stâng (**predecesorul**;​ se caută cel mai mare nod din acest subarbore, adică "se merge" în dreapta până se ajunge la un nod cu cel mult un succesor, aflat evident în partea stângă, altfel am putea avansa în adâncime pe dreapta) sau nodul din extremitatea stânga a subarborelui drept (**succesorul**;​ se caută cel mai mic nod din acest subarbore, adică "se merge" în stânga ​până se ajunge la un nod cu cel mult un succesor, aflat evident în partea dreaptă, altfel am putea avansa în adâncime pe stânga).
 </​note>​ </​note>​
  
Line 208: Line 208:
  
 <​note>​ <​note>​
-Un arbore este **echilibrat** dacă fiecare subarbore este echilibrat și înălțimea oricăror doi subarbori diferă cu cel mult 1. Această regulă stă la baza implementării unui arbore AVL. Arborii roșu-negru impun alte reguli.+Un arbore este **echilibrat** dacă fiecare subarbore este echilibrat și înălțimea oricăror doi subarbori diferă cu cel mult 1.
 </​note>​ </​note>​
  
Line 215: Line 215:
 ===== Schelet ===== ===== Schelet =====
  
-{{:​sd-ca:​laboratoare:​lab_9:lab09.zip|}} +{{:​sd-ca:​laboratoare:​lab09_2023_1.zip|Schelet de laborator}}
  
 ===== Exerciții ===== ===== Exerciții =====
  
 <​note>​ <​note>​
-Fiecare laborator va avea unul sau două exerciții publice șun pool de subiecte ascunsedin care asistentul poate alege cum se formează celelalte puncte ale laboratorului.+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. Aveti grija sa selectati contestul corect la submit, si anume **[[https://​beta.lambdachecker.io/​contest/​36|Laborator 9 SD]]**
 </​note>​ </​note>​
 +
  
 1) [**3.5p**] ABC 1) [**3.5p**] ABC
Line 239: Line 239:
   * 2 - afișăm prima echipă din clasament   * 2 - afișăm prima echipă din clasament
   * 3 - eliminăm prima echipă din clasament   * 3 - eliminăm prima echipă din clasament
 +  * 4 - se incheie programul
  
 La final, vom afișa topul echipelor rămase în joc. La final, vom afișa topul echipelor rămase în joc.
 +
 +3) [**BONUS 2p**] BST K-Smallest
 +
 +Se dă un arbore binar de căutare cu valori de tip întreg. Să se întoarcă a k-a cea mai mică valoare din arbore.
 +
 +4) [**BONUS 1p**] BST Two-Sum
 +
 +Se dă un arbore binar de căutare cu valori de tip întreg. Să se verifice daca există doua noduri ale căror valori însumate dau valoarea căutată. Daca există se va intoarce 1, iar în caz contrar se va întoarce 0.
 +
 +5) [**BONUS 2p**] Heap K-Largest
 +
 +Sa se gaseasca al K-lea cel mai mare numar dintr-o lista, utilizand un heap binar.
  
 ===== Bibliografie ===== ===== Bibliografie =====
sd-ca/laboratoare/lab-09.txt · Last modified: 2024/04/28 18:06 by alin.ichim
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