Arbori în structura datelor: 8 tipuri de arbori despre care fiecare cercetător de date ar trebui să știe

Publicat: 2021-05-26

Cuprins

Introducere

În domeniul informatic, structurile de date se referă la modelul de aranjare a datelor pe un disc, care permite stocarea și afișarea convenabilă. Acestea se referă la domeniul științei datelor, despre care se prevede că va fi o alegere profitabilă de carieră în 2021. Pe baza previziunilor pentru următorii câțiva ani, modelele de învățare profundă la scară largă și dispozitivele inteligente de ultimă generație vor deschide viitorul acest sector.

Astfel, obținerea cunoștințelor structurilor de date ar fi esențială pentru găsirea unei cariere potrivite în mijlocul progresului tehnologic. Conform predicției Data Science Industry din 2021, SUA și India ar angaja aproximativ 50000 de oameni de știință de date și 300.000 de analiști de date în cadrul celor peste 2.50.000 de firme ale lor. [1]

Structurile de date sunt aplicate pentru proiectarea căilor de alocare, management și regăsire a informațiilor. Structurile de date sunt deosebit de necesare pentru elaborarea și îmbunătățirea eficienței întregului proces de date. Aceștia gestionează datele prin gruparea și organizarea acestora pentru a facilita eficient schimbul de informații.

Arbori în structurile de date

„Arborele” sunt un tip de ADT-uri (Tipuri de date abstracte), care urmează un model ierarhic pentru alocarea lor de date. În esență, un arbore este o colecție de mai multe noduri conectate prin margini. Acești „arbori” formează un design de structură de date care seamănă cu un arbore, unde nodul „rădăcină” duce la noduri „părinte”, care în cele din urmă duc la noduri „copii”. Conexiunile se fac cu linii cunoscute sub numele de „margini”.

Nodurile „frunze” sunt puncte finale fără alte noduri secundare care provin din ele. Arborii din structurile de date joacă un rol vital datorită naturii neliniare a aranjamentului lor. Acest lucru permite un timp de răspuns mai rapid în timpul unei căutări, împreună cu confortul pe parcursul etapelor de proiectare.

Tipuri de arbori în structura datelor

Diferitele tipuri de arbori din structurile de date sunt explicate în detaliu mai jos:

1. Arborele general

Un arbore general se caracterizează prin lipsa oricărei specificații sau constrângeri privind numărul de copii pe care un nod poate avea. Orice arbore cu o structură ierarhică poate fi clasificat ca arbore general. Un nod poate avea mai mulți copii și poate exista orice fel de combinație pentru orientarea arborelui. Nodurile pot fi de orice grad, de la 0 la n.

Urmează un exemplu clasic de arbore general în structura de date, cu „2” în partea de sus fiind nodul rădăcină.

Sursă

2. Arborele binar

După cum este definit de cuvântul „binar”, care înseamnă două numere, un arbore binar este format din noduri care pot avea 2 noduri copii. Orice nod dintr-un arbore binar poate avea cel mult 0, 1 sau 2 noduri. Arborii binari din structurile de date sunt ADT-uri foarte funcționale și pot fi subdivizați în mai multe tipuri. Ele sunt utilizate în principal în structurile de date în două scopuri:

  1. Pentru accesarea nodurilor și etichetarea acestora, așa cum se observă în Arborele de căutare binar.
  2. Pentru reprezentarea datelor printr-o structură bifurcată.

Următoarea este o diagramă de bază a unui arbore binar într-o structură de date:

Sursă

3. Arborele de căutare binar

Un arbore binar de căutare (BST) este un subtip unic de arbori binari care sunt aranjați astfel încât să faciliteze căutarea/căutarea mai rapidă sau adăugarea/eliminarea datelor. Un BST este definit de reprezentarea nodurilor bazată pe trei câmpuri: date, copilul său stâng și copilul său drept. Factorii care guvernează BST sunt:

  1. Fiecare nod din partea stângă (fiul din stânga) trebuie să dețină o valoare mai mică decât nodul său părinte.
  2. Fiecare nod din partea dreaptă (codul din dreapta) trebuie să dețină o valoare mai mare decât nodul părinte.

Un astfel de aranjament reduce timpii de căutare la jumătate dintr-o căutare liniară, așa cum se găsește într-o matrice. Astfel, arborii binari de căutare în structurile de date sunt aplicabili pe scară largă pentru căutare și sortare în comparație cu alte ADT-uri.

Sursă

Chiar dacă atât BT-urile, cât și BST-urile sunt în esență arbori în structurile de date , nu vă lăsați confuzi de similitudinea dintre numele lor. Aflați diferența dintre un arbore binar și un arbore de căutare binar în detaliu la upGrad.

4. Arbore AVL

Arborele AVL își trage numele de la inventatorii săi: Adelson-Velsky și Landis. Arborele AVL se caracterizează printr-o natură de auto-echilibrare. Înălțimile a doi subarbori ale nodurilor sale rădăcină sunt limitate la mai puțin de doi. Când diferența de înălțime crește peste 1, nodurile copil sunt reechilibrate.

Arborii AVL sunt echilibrați pe înălțime, iar această reechilibrare are loc prin rotații simple sau duble. Factorul de echilibrare este diferența dintre înălțimile subarborelui din stânga și ale subarborelui din dreapta, iar valorile sunt -1, 0 și 1.

5. Arborele Roșu Negru

Acest tip seamănă cu arborii AVL, deoarece arborii roșii și negri sunt, de asemenea, echilibrați în funcție de înălțime. Ceea ce le separă este că nu necesită mai mult de două rotații pentru a le echilibra. Acestea conțin un bit suplimentar care definește culoarea roșie sau neagră a unui nod, ceea ce asigură echilibrarea arborilor în timpul ștergerii și inserărilor. Codul de culoare roșu negru este, de asemenea, revopsit în timpul modificărilor, dar aproape fără costuri suplimentare de memorie.

6. Splay Tree

Un alt subtip al arborelui de căutare binar, arborele splay, are o proprietate unică de a efectua operații de rotație pentru a ajusta nodul recent. Nodul care este accesat recent este aranjat ca nod rădăcină prin efectuarea unei rotații. Este un copac echilibrat, dar nu unul echilibrat pe înălțime.

Actul de „splaying” este efectuat după căutarea inițială a arborelui binar, deoarece rotațiile arborilor sunt efectuate într-un mod specific. După fiecare operație, arborele este rotit pentru a se echilibra, iar elementul căutat este aranjat în partea de sus ca un nod rădăcină.

7. Treap

„Treaps” în structurile de date sunt o combinație de copaci și grămezi. În BST, valoarea copilului din stânga trebuie să fie mai mică decât nodul rădăcină, iar valoarea copilului din dreapta trebuie să fie mai mare. Într-o structură de date heap, nodul rădăcină are cea mai mică valoare, iar nodurile sale secundare (atât la stânga, cât și la dreapta) au valori mai mari.

Astfel, un treap deține o valoare sub forma unei chei (asemănătoare cu BST) și o prioritate (cum ar fi grămezi). Nodurile cu cea mai mare prioritate sunt inserate mai întâi într-un arbore de căutare binar, astfel încât numerele prioritare să fie numere aleatoare independente. Ei mențin un set dinamic de chei ordonate și permit căutări binare în cheile lor.

8. B-Arbore

Ca un tip de arbore cu auto-echilibrare în structurile de date, B-Tree sortează datele pentru a permite căutarea, accesul secvențial, ștergerile și inserările în timp logaritmic. Spre deosebire de un arbore binar, un arbore B permite nodurilor sale să aibă mai mult de doi copii. Sunt compatibile cu bazele de date și sistemele de fișiere care citesc și scriu blocuri mai mari de date.

Un arbore B în structurile de date este utilizat pentru sisteme de stocare mai mari, cum ar fi discuri. Toate frunzele nu conțin informații și apar la același nivel. Nodurile interne ale unui arbore B pot avea o dimensiune variabilă a nodurilor fii legate de un interval.

Aceștia sunt arborii din structurile de date , care sunt implementați de programatori care proiectează fluxul de date. Învățarea caracteristicilor și aplicațiilor lor unice este esențială pentru călătoria dvs. de a deveni un cercetător de date. O altă metodă de a vă îmbunătăți abilitățile ar fi să exersați prin diverse proiecte care necesită cunoașterea arborilor în structurile de date și alte forme de ADT-uri.

Pentru a vă aplica cunoștințele pentru proiectele DS, următoarele link-uri de blog au 13 idei interesante de proiecte de structură de date și subiecte pentru începători [2021] .

Concluzie

A învăța despre concepte precum arborii dintr-o structură de date poate fi dificil, iar aspiranții la programare au nevoie de îndrumări de specialitate pentru a se educa. Pentru a afla mai multe despre arbori într-o structură de date, consultați cursurile online oferite de upGrad . Programul Executive PG în Dezvoltare Software – Specializarea în DevOps cu DevOps de la IIIT-B & upGrad vă poate ajuta să vă construiți cariera de programator.

Deoarece competența structurilor de date este parte integrantă a procesului de codare, aceasta poate ajuta studentul să devină un programator expert și dezvoltator de software. Programatorii și oamenii de știință de date vor fi neapărat solicitați pentru deceniile care urmează.

Avem 500 de milioane de utilizatori de internet în India, care generează și consumă cantități mari de date, ceea ce necesită angajarea a mii de oameni de știință de date pentru a satisface cererea. [2] Acești oameni de știință de date au nevoie de educația potrivită, cu expertiză tehnologică relevantă, pentru a căuta un loc de muncă în acest sector.

Un Program Executive PG în Dezvoltare Software – Specializare în Dezvoltare Full Stack , organizat de upGrad & IIIT-Bangalore, vă poate ajuta să vă îmbunătățiți profilul și să vă asigurați oportunități mai bune de angajare ca programator.

Ce fel de arbori pot fi folosiți pentru căutare?<br />

- Un arbore de căutare este o structură de date care este utilizată pentru a localiza anumite chei într-un set de date. Cheia fiecărui nod trebuie să fie mai mare decât orice cheie din subarborele din stânga, dar mai mică decât cheile din subarborele din dreapta pentru ca un arbore să acționeze ca un arbore de căutare.
- Când arborele este destul de echilibrat, adică frunzele de la ambele capete sunt de adâncimi echivalente, arborii de căutare au un avantaj în ceea ce privește timpul de căutare. Există o varietate de structuri de date din arborele de căutare, dintre care unele permit în plus inserarea și ștergerea eficientă a elementelor, acțiuni care trebuie apoi să păstreze echilibrul arborelui.
- Un tablou asociativ este implementat frecvent folosind arbori de căutare. Algoritmul arborelui de căutare localizează un loc folosind cheia din perechea cheie-valoare, iar apoi aplicația stochează perechea cheie-valoare completă în acea locație.
- Arborii de căutare binari, arborii B, arborii (a,b) și arborii de căutare ternari sunt exemple de arbori de căutare.

Care sunt principalele aplicații ale structurii de date arborescente?

Datele ierarhice, cum ar fi structura folderelor, structura organizației și datele XML/HTML, ar trebui să fie stocate în arbori.
1. Un arbore binar de căutare este un arbore care vă permite să căutați, să inserați și să ștergeți rapid datele care au fost sortate. De asemenea, vă ajută să localizați elementul care este cel mai apropiat de dvs.
2. Heap este o structură de date arborescentă care utilizează matrice și este folosită pentru a construi cozi prioritare.
3. B-Tree și B+ Tree sunt două tipuri de arbori de indexare utilizate în bazele de date.
4. Compilatorii folosesc arborele de sintaxă.
5. Un arbore de partiționare a spațiului folosit pentru a organiza punctele în spațiul dimensional K este cunoscut sub numele de arbore KD.
6. Trie este o structură de date care este folosită pentru a construi dicționare cu căutare de prefix.
7. Arborele sufixelor este folosit pentru a căuta rapid modele într-un text fix.
8. În rețelele de calculatoare, routerele și podurile folosesc arbori de întindere, precum și arbori cu calea cea mai scurtă, respectiv.

Ce este un copac perfect?

Un arbore binar perfect este unul în care fiecare nod interior are doi descendenți și fiecare frunză are aceeași adâncime sau nivel. Schema de ascendență (non-incestuoasă) a unei persoane la o anumită adâncime este un exemplu de arbore binar perfect, deoarece fiecare persoană are exact doi părinți biologici (o mamă și un tată).