Sunteți pe pagina 1din 8

Algoritmi și structuri de date – curs 7

- Informatică Economică, an II –

Arbori binari de cautare

Gheorghe Cosmin Silaghi

Cluj-Napoca - 16 Mai 2018


Cuprins
Definire
Cautarea elementelor in arbore
Inserare si stergere

Cluj-Napoca - 16 Mai 2018


Arbore binar de cautare
Fiecare nod de arbore contine cheia, date auxiliare si 3 referinte: left, right si p care
  pointează către nodurile copii stanga respectiv dreapta și către nodul părinte
Dacă un copil sau un părinte lipseste, referinta respectivă va fi Nil

Arbore binar de căutare – definire:


Un arbore este binar de căutare dacă este un arbore binar (adică fiecare nod are cel
mult 2 copii) si
Daca x este un nod in arbore, si y este un nod in subarborele stang atunci . Dacă y
este un nod in subarborele drept, atunci

Cluj-Napoca - 16 Mai 2018


Parcurgeri ale arborelui binar de căutare
  Parcurgerea in inordine: stang-radacină-drept: produce nodurile
arborelui in ordinea sortată a cheilor

INORDER-TREE-WALK(x)
1. If x != Nil
2. INORDER-TREE-WALK(x.left)
3. Print x.key
4. INORDER-TREE-WALK(x.right)

Parcurgerea in preordine: radacină-stang-drept


Parcurgerea in postordine: stang-drept-radacină

Temă: implementati toate cele 3 proceduri de parcurgere a arborilor

Complexitatea acestor parcurgeri:

Cluj-Napoca - 16 Mai 2018


Căutarea unei chei in arbore
TREE-SEARCH(x, k) ITERATIVE-TREE-SEARCH(x, k)
1. If x == Nil or k = x.key 1. while !(x == Nil or k = x.key)
2. Return x 2. If k < x.key
3. If k < x.key 3. x = x.left
4. Return TREE-SEARCH(x.left, k) 4. Else x = x.right
5. Else Return TREE-SEARCH(x.right, k) 5. Return x

Căutarea cheii cu valoare minimă Căutarea nodului cu cheie succesoare in


TREE-MINIMUM(x) parcurgerea in inordine
1. While x.left != Nil TREE-SUCCESSOR(x)
2. x = x.left 1. If x.right != Nil
3. Return x 2. Return TREE-MINIMUM(x.right)
3. y = x.p
Căutarea cheii cu valoare maximă 4. While y != Nil and x == y.right
TREE-MAXIMUM(x) 5. x=y
1. While x.right != Nil 6. y = y.p
2. x = x.right 7. Return y
3. Return x Temă: scrieți procedura TREE-PREDECESOR

Operațiile se execută in O(h), unde h repezintă inăltimea arborelui


Inserarea unui nod
TREE-INSERT(T, z)
1. y = Nil
2. x = T.root
3. While x != Nil
4. y = x
5. If z.key < x.key
6. x = x.left
7. Else x = x.right
8. z.p = y
9. If y == Nil
10. T.root = z // arborele a fost gol
11. Elseif z.key < y.key
12. y.left = z
13. Else y.right = z

Cluj-Napoca - 16 Mai 2018


Stergerea unui nod
3 cazuri:
 Se sterge un nod frunză
 Se sterge un nod cu un singur copil: acesta urcă in sus in arbore
 Se sterge un nod cu 2 copii: se găseste succesorul nodului care se sterge. Subarborele
drept este elevat, subarborele stang este agatat in stanga succesorului
TREE-DELETE(T, z)
1. If z.left == Nil TRASNPLANT(T, u, v)
2. TRANSPLANT(T, z, z.right) 1. If u.p == Nil
3. Elseif z.right == Nil 2. T.root = v
3. Elseif u == u.p.left
4. TRANSPLANT(T, z, z.left)
4. u.p.left = v
5. Else y = TREE-MINIMUM(z.right) 5. Else u.p.right = v
6. If y.p != z 6. If v != Nil
7. TRANSPLANT(T, y, y.right) 7. v.p = u.p
8. y.right = z.right
9. y.right.p = y
10. TRANSPLANT(T, z, y) Procedura TRANSPLANT:
In arborele T se inlocuieste subarborele referit de u
11. y.left = z.left
cu un alt subarbore referit de v
12. y.left.p = y

Cluj-Napoca - 16 Mai 2018


Cluj-Napoca - 16 Mai 2018

S-ar putea să vă placă și

  • ITINERARII
    ITINERARII
    Document3 pagini
    ITINERARII
    Cristina Ungurean
    Încă nu există evaluări
  • 120 Sfaturi de Calatorie Oxigen Tour 1 .01
    120 Sfaturi de Calatorie Oxigen Tour 1 .01
    Document34 pagini
    120 Sfaturi de Calatorie Oxigen Tour 1 .01
    Baboonela
    Încă nu există evaluări
  • Grecia
    Grecia
    Document1 pagină
    Grecia
    Cristina Ungurean
    Încă nu există evaluări
  • Grecia
    Grecia
    Document1 pagină
    Grecia
    Cristina Ungurean
    Încă nu există evaluări
  • Direcţia Generală Permise de Conducere Şi Înmatriculări
    Direcţia Generală Permise de Conducere Şi Înmatriculări
    Document3 pagini
    Direcţia Generală Permise de Conducere Şi Înmatriculări
    Cristina Ungurean
    Încă nu există evaluări
  • Pelerinaj Ierusalim 20-27 Aug 2023
    Pelerinaj Ierusalim 20-27 Aug 2023
    Document2 pagini
    Pelerinaj Ierusalim 20-27 Aug 2023
    Cristina Ungurean
    Încă nu există evaluări
  • Pelerinaj Etiopia Creștină 09.10.2023
    Pelerinaj Etiopia Creștină 09.10.2023
    Document3 pagini
    Pelerinaj Etiopia Creștină 09.10.2023
    Cristina Ungurean
    Încă nu există evaluări
  • A) Antiangiogenetice 2) Regenerare Celulara
    A) Antiangiogenetice 2) Regenerare Celulara
    Document14 pagini
    A) Antiangiogenetice 2) Regenerare Celulara
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 8
    Curs 8
    Document16 pagini
    Curs 8
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document14 pagini
    Curs 6
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document21 pagini
    Curs 3
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document13 pagini
    Curs 4
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document24 pagini
    Curs 5
    Cristina Ungurean
    Încă nu există evaluări
  • Curs1 2
    Curs1 2
    Document27 pagini
    Curs1 2
    Cristina Ungurean
    Încă nu există evaluări
  • Baza 2 in Baza 10
    Baza 2 in Baza 10
    Document1 pagină
    Baza 2 in Baza 10
    hack.h
    Încă nu există evaluări
  • Arie Triunghi
    Arie Triunghi
    Document1 pagină
    Arie Triunghi
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document22 pagini
    Curs 1
    Cristina Ungurean
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document11 pagini
    Curs 2
    Cristina Ungurean
    Încă nu există evaluări
  • Curs PP
    Curs PP
    Document17 pagini
    Curs PP
    Cristina Ungurean
    Încă nu există evaluări
  • Laborator2 OOP
    Laborator2 OOP
    Document3 pagini
    Laborator2 OOP
    Cristina Ungurean
    Încă nu există evaluări
  • Laborator5 OOP
    Laborator5 OOP
    Document3 pagini
    Laborator5 OOP
    Cristina Ungurean
    Încă nu există evaluări
  • Laborator3 OOP
    Laborator3 OOP
    Document6 pagini
    Laborator3 OOP
    Cristina Ungurean
    Încă nu există evaluări
  • RezolvareScenariu - ERD Si Tabele Mapare
    RezolvareScenariu - ERD Si Tabele Mapare
    Document8 pagini
    RezolvareScenariu - ERD Si Tabele Mapare
    mueramon
    Încă nu există evaluări
  • Laborator 9
    Laborator 9
    Document12 pagini
    Laborator 9
    user.giu
    Încă nu există evaluări