Arbore binar

Categorie: Informatica | Autor: Ciorna.com | Dimensiune: 74 KB | Descărcări: 314
Descriere:

Un arbore binar este un arbore orientat în care fiecare vârf are cel mult doi descendenti, făcându-se însă distincţie clară între descendentul drept şi descendentul stâng al fiecărui vârf. Se acceptă şi arborele binar cu 0 vârfuri. Arborii binari nu reprezintă cazuri particulare de arbori orientaţi, decât dacă se face abstracţie de distincţia menţionată între descendentul drept şi cel stâng al fiecărui vârf. Într-adevăr dacă un vârf are un singur descendent, această informaţie este suficientă în cazul unui arbore, dar insuficientă în cazul unui arbore binar, când trebuie precizat dacă acest descendent este descendent stâng sau descendent drept. Definire. Reprezentare. Prezentăm în continuare cîteva modalităţi de definire a arborilor binari in Haskell. data Tree a = Nil | T(Tree a, a, Tree a) data Tree a = Nil | T Tree a a Tree a Pentru a afişa structurile de date arborescente intr-un mod similar cu listele sau tipurile de date simple, este necesara extinderea clasei Show, prin intermediul căreia se realizează afişarea datelor la consola. -- Extinderea clasei Show instance Show a => Show (Tree a) where show Nil = "Nil" show (T(l,n,r)) = " T( " ++ show l ++ ", " ++ show n ++ ", " ++ show r ++ ") " Într-o structură de tip arbore, elementele sunt structurate pe nivele ; pe primul nivel, numit nivel 0, există un singur element numit rădăcină, de care sunt legate mai multe elemente numite fii care formează nivelul 1; de acestea sunt legate elementele de pe nivelul 2 ş. a. m. d. ( vezi figura ). Un arbore este compus din elementele numite noduri sau vârfuri şi legăturile dintre acestea. Un nod situat pe un anumit nivel este nod tată pentru nodurile legate de el, situate pe ivelul următor, acestea reprezentând fiii săi. Fiecare nod are un singur tată, cu excepţia rădăcinii care nu are tată. Nodurile fără fii se numesc noduri terminale sau frunze. Termenii ' nod tată', 'fiu' sau 'frate' sunt preluaţi de la arborii genealogici, cu care arborii se aseamănă foarte mult. Arborii, ca structuri dinamice de date, au extrem de multe aplicaţii în informatică. Deosebit de utilizatăîn aplicaţii este structura de tip arbore binar. Un arbore binar este un arbore în care fiecare nod are cel mult doi fii, fiul stâng şi fiul drept (fiul stâng este legat în stânga tatălui şi cel drept în dreapta ). Dacă în figură se elimină rădăcina şi legăturile ei, se obţin doi arbori binari care se numesc subarborii stâng şi drept ai arborelui iniţial. Arborele binar este, deci, o structură recursivă de date. Un arbore binar nevid fie se reduce la rădăcină, fie cuprinde rădăcina şi, cel mult, doi subarbori binari. Un arbore binar se poate implementa foarte uşor cu ajutorul adreselor de înlănţuire, fiecare element cuprinzând, în afară de informaţia proriu-zisă asociată nodului, adresa fiului stâng şi adresa fiului drept, acestea exprimând legăturile existente între noduri. Implementarea arborilor binari Dacă se recurge la implementarea arborilor prin structuri dinamice, atunci această constantă se reprezintă prin NIL. Tipul informaţiilor ataşate nodurilor dintr-un arbore este specific fiecărei aplicaţii în parte. Din acest motiv, vom considera că informaţia ataşată fiecărui nod este adrestă indirect prin intermediul unui pointer. În majoritatea implementărilor şi cei doi subarbori sunt adresaţi indirect; în funcţie de varianta de implementare - dinamică sau statică - , adresarea se realizează fie prin intermediul pointerilor, fie prin intermediul indicilor de tablou


Descarcă referatul Spune unui prieten Alte referate din această categorie
Acordă o notă acestui referat:5.34
Mulţumim pentru notă - 89 note acestui referat.