Summary of Bináris keresőfa
Bináris Keresőfa Összefoglaló: Alapok, Műveletek, Példák
Bevezetés a Bináris Keresőfákba
A bináris keresőfa (Binary Search Tree, BST) a számítástechnika egyik alapvető adatszerkezete, amely hatékony módot biztosít rendezett adatok tárolására és kezelésére. Nevét onnan kapta, hogy minden csomópontnak legfeljebb két gyermeke lehet (bináris), és az adatok elrendezése lehetővé teszi a gyors keresést (keresőfa). A BST-k széles körben alkalmazhatók adatbázis-indexekben, szótárakban és más olyan rendszerekben, ahol az adatok gyors visszakeresése, beszúrása és törlése kulcsfontosságú.
Gyökér (Root): A fa legfelső csomópontja, ahonnan minden művelet indul.
Levél (Leaf Node): Azok a csomópontok, amelyeknek nincs gyermekük.
A Bináris Keresőfa Tulajdonságai
Egy bináris fa akkor minősül bináris keresőfának, ha minden csomópontjára igaz a következő tulajdonság:
- A csomópont bal oldali részfájában található összes érték kisebb, mint a csomópont saját értéke.
- A csomópont jobb oldali részfájában található összes érték nagyobb, mint a csomópont saját értéke.
- Mind a bal, mind a jobb oldali részfa maga is bináris keresőfa.
Ez a rendezési elv biztosítja, hogy az adatok mindig rendezett sorrendben legyenek tárolva, ami jelentősen felgyorsítja a keresési műveleteket.
Műveletek Bináris Keresőfán
A bináris keresőfák alapvető műveletei a keresés, a beszúrás és a törlés. Ezeknek a műveleteknek az időkomplexitása szorosan összefügg a fa magasságával, amit $h$-val jelölünk. A legtöbb művelet időkomplexitása $O(h)$, ami azt jelenti, hogy a művelet végrehajtásához szükséges lépések száma arányos a fa magasságával.
Időkomplexitás: Egy algoritmus futásidejének mértéke a bemenet méretének függvényében. Az $O(h)$ jelölés azt mutatja, hogy a művelet végrehajtásához szükséges idő arányos a fa magasságával.
Keresés (Search)
Egy adott érték keresése a bináris keresőfában egy egyszerű, rekurzív vagy iteratív eljárással történik:
- Kezdjük a gyökérnél.
- Ha a keresett érték megegyezik az aktuális csomópont értékével, akkor az értéket megtaláltuk.
- Ha a keresett érték kisebb, mint az aktuális csomópont értéke, akkor folytassuk a keresést a bal oldali részfában.
- Ha a keresett érték nagyobb, mint az aktuális csomópont értéke, akkor folytassuk a keresést a jobb oldali részfában.
- Ha elérünk egy üres részfát (null mutatót), és az értéket még nem találtuk meg, akkor az érték nincs a fában.
Ez az eljárás minden lépésben kizárja a fa egyik felét, hasonlóan a bináris kereséshez egy rendezett tömbben. A legrosszabb esetben a keresés a fa magasságával arányos számú lépést igényel, azaz időkomplexitása $O(h)$.
Példa keresésre: Keresés a $7$ értékre egy adott fában.
8
/ \
3 10
/ \ \
1 6 14
/ \
4 7
- Kezdjük a $8$-nál. $7 < 8$, menjünk balra (a $3$-hoz).
- A $3$-nál vagyunk. $7 > 3$, menjünk jobbra (a $6$-hoz).
- A $6$-nál vagyunk. $7 > 6$, menjünk jobbra (a $7$-hez).
- A $7$-nél vagyunk. Az érték megegyezik. Megtaláltuk!
Beszúrás (Insertion)
Új érték beszúrása a bináris keresőfába a kereséshez hasonló logikát követ, de a keresés addig folytatódik, amíg el nem érünk egy üres helyet, ahová az új csomópontot beilleszthetjük:
- Kezdjük a gyökérnél.
- Ha a fa üres, az új érték lesz a gyökér.
- Ha az új érték kisebb, mint az aktuális csomópont értéke, akkor lépjünk a bal oldali gyermekhez. Ha a bal oldali gyermek üres, szúrjuk be ide az új csomópontot. Ellenkező esetben folytassuk a bal oldali gyermeknél.
- Ha az új érték nagyobb, mint az aktuális csomópont értéke, akkor lépjünk a jobb oldali gyermekhez. Ha a jobb oldali gyermek üres, szúrjuk be ide az új csomópontot. Ellenkező esetben folytassuk a jobb oldali gyermeknél.
- Ha az új érték megegyezik egy m
Already have an account? Sign in
Bináris Keresőfák Alapjai
Klíčová slova: Bináris keresőfák, Fa magassága
Klíčové pojmy: A bináris keresőfa (BST) adatszerkezet rendezett adatok tárolására és hatékony kezelésére szolgál., Minden csomópontnak legfeljebb két gyermeke lehet, és a bal oldali részfában kisebb, a jobb oldaliban nagyobb értékek találhatók., A gyökér a fa legfelső csomópontja, a levelek azok, amelyeknek nincs gyermekük., A keresés, beszúrás és törlés alapvető műveletek, melyek időkomplexitása $O(h)$, ahol $h$ a fa magassága., Keresés során a gyökérből indulva hasonlítjuk össze az értékeket, és a megfelelő részfában folytatjuk a keresést., Beszúráskor az üres helyet keressük meg a rendezési szabályoknak megfelelően, és oda illesztjük be az új csomópontot., Törléskor három esetet különböztetünk meg: levél, egygyermekes csomópont és kétgyermekes csomópont törlése., Kétgyermekes csomópont törlésekor az in-order successor vagy predecessor helyettesíti a törölt elemet., Gyakori hiba a rendezési szabály megsértése vagy a kiegyensúlyozatlanság figyelmen kívül hagyása, ami teljesítményromláshoz vezet., Az in-order bejárás mindig rendezett sorrendben adja vissza az elemeket., A szimulációk segítenek vizuálisan megérteni a fa dinamikus viselkedését és a műveletek hatását a fa szerkezetére.