Publicitate

Copac reprezintă nodurile conectate prin muchii. Vom discuta în mod specific arborele binar sau arborele de căutare binar.Arborele binar este o structură de date specială utilizată în scopuri de stocare a datelor. Un arbore binar are o condiție specială ca fiecare nod să aibă maximum doi copii., Un arbore binar are avantajele atât a unui tablou ordonat, cât și a unei liste legate, deoarece căutarea este la fel de rapidă ca într-o matrice sortată, iar operația de inserare sau ștergere este la fel de rapidă ca în lista legată.

termeni importanți

următoarele sunt termenii importanți în ceea ce privește arborele.calea-calea se referă la secvența de noduri de-a lungul marginilor unui copac.rădăcină-nodul din partea de sus a copacului se numește rădăcină. Există o singură rădăcină pe arbore și o cale de la nodul rădăcină la orice nod.,

  • părinte – orice nod, cu excepția nodului rădăcină, are o margine în sus până la un nod numit părinte.copil-nodul de sub un nod dat conectat prin marginea sa în jos se numește nodul său copil.

  • Leaf-nodul care nu are niciun nod copil se numește nodul leaf.

  • Subtree-Subtree reprezintă descendenții unui nod.

  • vizitarea-vizitarea se referă la verificarea valorii unui nod atunci când controlul este pe nod.

  • traversarea-traversarea înseamnă trecerea prin noduri într-o anumită ordine.,

  • niveluri-nivelul unui nod reprezintă generarea unui nod. Dacă nodul rădăcină este la nivelul 0, atunci următorul nod copil este la nivelul 1, nepotul său este la nivelul 2 și așa mai departe.

  • keys-cheia reprezintă o valoare a unui nod pe baza căruia trebuie efectuată o operație de căutare pentru un nod.

  • reprezentarea arborelui de căutare binară

    arborele de căutare binară prezintă un comportament special. Copilul stâng al unui nod trebuie să aibă o valoare mai mică decât valoarea părintelui său, iar copilul drept al nodului trebuie să aibă o valoare mai mare decât valoarea părintelui său.,

    vom implementa arborele folosind obiectul nodului și conectându-le prin referințe.

    nod arbore

    codul pentru a scrie un nod arbore ar fi similar cu ceea ce este dat mai jos. Are o parte de date și referințe la nodurile copilului stâng și drept.

    struct node { int data; struct node *leftChild; struct node *rightChild;};

    într-un arbore, toate nodurile au o construcție comună.operațiile de bază care pot fi efectuate pe o structură de date a arborelui de căutare binară sunt următoarele −

    • Insert − inserează un element într-un arbore/creează un arbore.,

    • căutare-Caută un element într-un copac.

    • precomandă Traversal-traversează un copac într-o manieră pre-comandă.

    • Inorder Traversal-traversează un copac într-o manieră în ordine.

    • Postorder Traversal-traversează un copac într-o manieră post-comandă.vom învăța crearea (inserarea în) o structură arborescentă și căutarea unui element de date într-un arbore în acest capitol. Vom învăța despre metodele de traversare a copacilor în capitolul următor.

      operație de inserare

      prima inserție creează arborele., După aceea, ori de câte ori un element este de a fi introdus, localizați mai întâi locația corespunzătoare. Începeți căutarea din nodul rădăcină, apoi dacă datele sunt mai mici decât valoarea cheii, căutați locația goală în subarborele din stânga și introduceți datele. În caz contrar, căutați locația goală în subarborele drept și introduceți datele.,

      algoritm

      If root is NULL then create root nodereturnIf root exists then compare the data with node.data while until insertion position is located If data is greater than node.data goto right subtree else goto left subtree endwhile insert dataend If 

      implementare

      implementarea funcției insert ar trebui să arate astfel −

      operație de căutare

      ori de câte ori un element trebuie căutat, începeți căutarea din nodul rădăcină, apoi dacă datele sunt mai mici decât valoarea cheii, căutați elementul din subtreea stângă. În caz contrar, căutați elementul din subarborele drept. Urmați același algoritm pentru fiecare nod.

      algoritm

      If root.data is equal to search.data return rootelse while data not found If data is greater than node.data goto right subtree else goto left subtree If data found return node endwhile return data not found end if 

      implementarea acestui algoritm ar trebui să arate astfel.,pentru a afla mai multe despre implementarea structurii de date a arborelui de căutare binară, vă rugăm să faceți clic aici.

      anunțuri