This shows you the differences between two versions of the page.
sd-ca:laboratoare:lab-10 [2020/04/28 20:09] dorin_andrei.geman [Noțiuni de bază despre AVL Trees] |
sd-ca:laboratoare:lab-10 [2025/04/28 19:37] (current) andreea.peiu [Schelet] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 10 - Treap ====== | + | ====== Laborator 8 - Treap ====== |
Responsabili | Responsabili | ||
- | * [[mailto:topala.andrei@gmail.com|Andrei Topală]] | + | * [[andreeapeiu2005@gmail.com | Andreea Peiu]] |
- | * [[mailto:doringeman@gmail.com|Dorin Geman]] | + | * [[traian24022005@gmail.com|Traian Dobrescu]] |
===== Obiective ===== | ===== Obiective ===== | ||
În urma parcurgerii articolului, studentul va fi capabil să: | În urma parcurgerii articolului, studentul va fi capabil să: | ||
Line 9: | Line 10: | ||
* exemplifice acest concept pe structura de treap | * exemplifice acest concept pe structura de treap | ||
* implementeze operațiile de adăugare/ștergere a unui nod și rotiri | * implementeze operațiile de adăugare/ștergere a unui nod și rotiri | ||
- | * facă operații mai complexe și parcurgeri de trepuri | + | * facă operații mai complexe și parcurgeri de treapuri |
===== Noțiuni teoretice ===== | ===== Noțiuni teoretice ===== | ||
Line 38: | Line 39: | ||
</note> | </note> | ||
- | Demonstraţia teoretică asupra faptului că operațiile de bază au complexitatea O(logN) se poate găsi aici[0]. | + | Operațiile de bază au complexitatea O(logN). |
==== Structura unui nod ==== | ==== Structura unui nod ==== | ||
Line 82: | Line 83: | ||
==== Căutarea ==== | ==== Căutarea ==== | ||
- | Deoarece treapul respecta proprietatea de arbore binar de cautare, căutarea se face exact ca la acesta. Vezi [[sd-ca/laboratoare/lab-09?&#cautarea|laboratorul 9]]. | + | Deoarece treapul respecta proprietatea de arbore binar de cautare, căutarea se face exact ca la acesta. Vezi [[sd-ca/laboratoare/lab-09?&#cautarea|laboratorul 7]]. |
==== Inserarea ==== | ==== Inserarea ==== | ||
Line 188: | Line 189: | ||
Puteți urmări încă un exemplu [[https://www.gatevidyalay.com/avl-tree-avl-tree-example-avl-tree-rotation/|aici]]. | Puteți urmări încă un exemplu [[https://www.gatevidyalay.com/avl-tree-avl-tree-example-avl-tree-rotation/|aici]]. | ||
</hidden> | </hidden> | ||
+ | <hidden> | ||
===== Noțiuni de bază despre Red-Black Trees ===== | ===== Noțiuni de bază despre Red-Black Trees ===== | ||
Line 204: | Line 206: | ||
*Fiecare drum simplu de la un nod la un descendent care este frunza contine acelasi numar de noduri negre. | *Fiecare drum simplu de la un nod la un descendent care este frunza contine acelasi numar de noduri negre. | ||
- | {{:sd-ca:laboratoare:800px-Red-black_tree_example.svg.png?600 }} | + | </hidden> |
- | + | ||
- | ===== Schelet ===== | + | |
- | + | ||
- | {{sd-ca:laboratoare:lab_10:lab_10_schelet.zip|Schelet}} | + | |
===== Exerciții ===== | ===== Exerciții ===== | ||
<note> | <note> | ||
- | Fiecare laborator va avea unul sau doua exerciții publice si un pool de subiecte ascunse, din care asistentul poate alege cum se formeaza celelalte puncte ale laboratorului. | + | Trebuie să vă creați cont de [[https://lambdachecker.io | Devmind]], 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/38 |Laborator 8 SD - update]]** |
</note> | </note> | ||
- | 1) **[4.5p]** Implementați următoarele funcții de bază pentru un treap: | + | 1) **[5.5p]** Implementați următoarele funcții de bază pentru un treap: |
- | * [1p] Căutare | + | * Căutare |
- | * [2p] Rotiri stânga și dreapta | + | * Rotiri stânga și dreapta |
- | * [1.5p] Inserare | + | * Inserare |
- | + | ||
- | 2) **[1.5p]** Implementați și funcția de ștergere pentru un treap. | + | |
- | + | ||
- | 3) **[1p]** Realizați o parcurgere a treap-ului astfel încât să obțineți cheile sortate crescător/descrescător. | + | |
- | 4) **[1.5p]** Folosiți acest [[https://www.cs.usfca.edu/~galles/visualization/AVLtree.html|tool]] pentru a vizualiza cum funcționează un AVL. | + | 2) **[1.5p]** Realizați o parcurgere a treap-ului astfel încât să obțineți cheile sortate crescător/descrescător. |
- | 5) **[1.5p]** Folosiți acest [[https://www.cs.usfca.edu/~galles/visualization/RedBlack.html|tool]] pentru a vizualiza cum funcționează un Red-Black Tree | + | Ambele task-uri sunt verificate in unica problema din contest. |
- | Pentru exercițiile 4 și 5 introduceți datele din exemplul oferit în laborator și încercați să preziceți la fiecare pas care va fi următoarea configurație. | ||
===== Interviu ===== | ===== Interviu ===== |