Differences

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

Link to this comparison view

sda-aa:laboratoare:06 [2021/04/04 22:57]
cristian.rusu [5. Probleme opționale, de interviu]
sda-aa:laboratoare:06 [2021/04/05 08:13] (current)
cristian.rusu [5. Probleme opționale, de interviu]
Line 17: Line 17:
 ==== 3. Operații ==== ==== 3. Operații ====
  
-  * **Căutarea** unei chei într-un arbore binar de căutare este asemănătoare căutării binare:​cheia căutată este comparată cu cheia din nodul curent (inițial nodul rădăcină). În funcție de rezultatul comparației apar trei cazuri:+  * **Căutarea** unei chei într-un arbore binar de căutare este asemănătoare căutării binare: cheia căutată este comparată cu cheia din nodul curent (inițial nodul rădăcină). În funcție de rezultatul comparației apar trei cazuri:
      * acestea coincid ⇒ elementul a fost găsit      * acestea coincid ⇒ elementul a fost găsit
      * elementul căutat este mai mic decât cheia din nodul curent ⇒ căutarea continuă în subarborele stâng      * elementul căutat este mai mic decât cheia din nodul curent ⇒ căutarea continuă în subarborele stâng
      * elementul căutat este mai mare decât cheia din nodul curent ⇒ căutarea continuă in subarborele drept      * elementul căutat este mai mare decât cheia din nodul curent ⇒ căutarea continuă in subarborele drept
  
-  * **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** unui nod este o operație puțin mai complicată,​întrucât presupune o rearanjare a nodurilor.Pentru eliminarea unui nod dintr-un arbore binar de căutare sunt posibile următoarele cazuri:+  * **Ștergerea** unui nod este o operație puțin mai complicată,​ întrucât presupune o rearanjare a nodurilor. Pentru eliminarea unui nod dintr-un arbore binar de căutare sunt posibile următoarele cazuri:
      * nodul de șters nu există ⇒ operația se consideră încheiată      * nodul de șters nu există ⇒ operația se consideră încheiată
      * nodul de șters nu are succesori ⇒ este o frunză      * nodul de șters nu are succesori ⇒ este o frunză
      * nodul de șters are un singur succesor ⇒ nodul se va șterge și se refac legăturile în arbore      * nodul de șters are un singur succesor ⇒ nodul se va șterge și se refac legăturile în arbore
-     * nodul de șters are doi succesori ⇒ se parcurge arborele drept,​căutându-se cea mai mică valoare,mai mare decât a nodului care trebuie șters și se refac legăturile cu acesta+     * nodul de șters are doi succesori ⇒ se parcurge arborele drept, căutându-se cea mai mică valoare,mai mare decât a nodului care trebuie șters și se refac legăturile cu acesta.
- +
-==== 4. Exercițiu ==== +
- +
-Se dă un vector cu n întregi (generat aleator). Scrieţi o funcţie care să creeze un arbore binar de căutare cu valorile din vector. Scrieţi o funcţie care verifică dacă arborele este binar de căutare. Scrieţi o funcţie care verifică dacă o valoare (generată aleator) dată se află în arbore(căutare). Acelaşi arbore – inserare (şi să rămână arbore de căutare). Acelaşi arbore – ştergere (şi să rămână arbore de căutare).+
  
 +==== 4. Exerciții ====
  
 +  - Se dă un vector cu n întregi (citit din fișierul input.txt, câte un număr pe fiecare linie). Scrieţi o funcţie care să creeze un arbore binar de căutare cu valorile din vector. Scrieţi o funcţie care verifică dacă arborele este binar de căutare. Scrieţi o funcţie care verifică dacă o valoare (generată aleator) dată se află în arbore (căutare). Acelaşi arbore – inserare (şi să rămână arbore de căutare). Acelaşi arbore – ştergere (şi să rămână arbore de căutare). [80% nota]
 +  - Același enunț ca ex. 1 dar acum păstrați arborele echilibrat (AVL). [20% nota]
 ==== 5. Probleme opționale, de interviu ==== ==== 5. Probleme opționale, de interviu ====
  
   - Se dă V (un vector de n întregi) şi P (un vector de taţi de lungime n). Verificaţi dacă se poate construi un arbore binar de căutare cu valorile din V şi legăturile copil-părinte din P.   - Se dă V (un vector de n întregi) şi P (un vector de taţi de lungime n). Verificaţi dacă se poate construi un arbore binar de căutare cu valorile din V şi legăturile copil-părinte din P.
-  - Propuneți soluții eficiente pentru a programa un program de tip "​auto-complete"​ pentru o listă de cuvinte (în timp ce tastați se afișează cele mai probabile 3 cuvinte la care vă referiți). Hint: verificați trie sau arbori de prefixe.+  - Propuneți soluții eficiente pentru a programa un program de tip "​auto-complete"​ pentru o listă de cuvinte (în timp ce tastați se afișează cele mai probabile 3 cuvinte la care vă referiți). Hint: verificați/căutați trie sau arbori de prefixe.
sda-aa/laboratoare/06.1617566246.txt.gz · Last modified: 2021/04/04 22:57 by cristian.rusu
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