sok programozó és az olvasóim már arra kért, hogy osszak meg néhány bináris fa alapú kódolás interjú kérdések, mint tettem a tömb, Linkelt lista, string, szoftver tervezés, minták, hash tábla, és az adatok szerkezetét általában. Ez a feladat valójában már jó ideje függőben volt, és elakadt számomra, hogy megpróbáljam megtalálni a megoldást minden egyes kérdésre, amelyet összegyűjthettem volna. Ezért úgy döntöttem, hogy most közzéteszem a bináris fa interjú kérdéseinek listáját, és később esetleg külön cikkként teszem közzé a megoldást. Ez olyan, mint egy interfész létrehozása és későbbi megvalósítás biztosítása, hogy ne blokkoljon más embereket, akik függenek az interfésztől (valójában ez az egyik előnye annak, hogy az interfészt Java-ban vagy bármely más programozási nyelven használja).
mi a bináris fa adatstruktúra?
különben is, visszatérve egy bináris fához, szeretnék újra megismételni néhány hasznos pontot a fa adatszerkezetéről általában, amelyek segítenek megoldani ezeket a kérdéseket:
1) a fa a hierarchikus adatstruktúra, ellentétben egy tömbbel vagy linkelt listával, amelyek lineárisak. Ez azt jelenti, hogy hierarchikus információkat tárolhat egy fa adatstruktúra, például szervezeti struktúra, családfa stb.
2) egy fának vannak csomópontjai és gyermekei. A felső vagy az első csomópontot gyökérnek nevezzük.
3) ha vizualizálni szeretné, a fa adatstruktúrája olyan, mint egy fordított fa a Való Világban. Úgy értem, amikor fákat látsz magad körül, a gyökereik az alján vannak, de amikor egy fa adatstruktúrát rajzolsz a programozásban vagy a számítástechnikában, a gyökérük a tetején van.
4) a bináris fa egy speciális fa, ahol legfeljebb két gyermeke lehet. Ez azt jelenti, hogy egy csomópont nem lehet gyermek, egy gyermek vagy két gyermek. Nem lehet három vagy több gyermekük.
5) minden olyan csomópont, amelynek nincs gyermeke, levélcsomópontként ismert.
6) A bináris keresési fa egy speciális típusú bináris fa, ahol a bal részfák értéke kisebb vagy egyenlő a gyökérrel, a jobb részfák csomópontjainak értéke pedig nagyobb vagy egyenlő a gyökérrel. Ez egy rendezési struktúrát biztosít egy bináris keresési fa számára, ami nagyon gyors keresést tesz lehetővé.
az adatstruktúrákat és algoritmusokat is ellenőrizheti: mély merülés a Java tanfolyam segítségével az Udemy-n, hogy többet tudjon meg a bináris keresési fákról. Ez az egyik legjobb tanfolyam az adatstruktúra és az algoritmusok készségeinek frissítésére.
7) a bináris keresési fa szorosan kapcsolódik egy bináris kereséshez, amely azon az elven működik, hogy minden iteráció után felére csökkenti a bemeneti méretet. Ez teszi a keresést nagyon gyors, és megtalálja minden eleme a bináris keresési fa O (logN) idő, de csak akkor, ha a fa kiegyensúlyozott.
8) kétféle módon lehet bejárni egy fa adatstruktúráját, a mélységet vagy az első szintet. A mélységben-először lemegy, amíg nincs több csomópont, amelyet meg kell látogatnia, majd visszatér, hogy ugyanazon a szinten látogassa meg a csomópontokat.
a szintsorrend bejárása közben az összes csomópontot ugyanazon a szinten látogatja meg, mielőtt a következő szintre lépne. Van még előrendelés, utórendelés, sorrendben bejárás a bináris számára, amelyet egy bináris fa csomópontjainak áthaladására használnak. Az Inorder traversal azért különleges, mert az összes csomópontot rendezett sorrendben látogatja meg.
9) a kiegyensúlyozott bináris fa olyan, mintha azonos számú csomópont lenne az egyes részfákon, ha az összes csomópont az egyetlen bal vagy jobb részfán van, mint a bináris fa kiegyensúlyozatlanná válik, és úgy fog működni, mint egy Linkelt lista, amint az az alábbi ábrán látható:
10) a kiegyensúlyozatlan vagy nem kiegyensúlyozott bináris keresési fa úgy viselkedik, mint egy Linkelt lista, ahol a keresés O(n) időt vesz igénybe, szemben az O(logN) idővel a kiegyensúlyozott bináris keresési fában.
ezek azok a fontos pontok, amelyeket minden programozónak tudnia kell a bináris fa adatszerkezetéről. Ez segít megoldani a fa alapú kódolási problémákat. Ha többet szeretne megtudni a bináris fáról és más adatstruktúrákról, azt javaslom, hogy csatlakozzon egy jó adatstruktúra és algoritmus tanfolyamhoz, mint például az adatstruktúrák és algoritmusok: mély merülés Java használatával az Udemy-n az alapok ecseteléséhez.
40+ bináris fa Interjú kérdések Java programozók számára
anélkül, hogy több időt pazarolna, itt van a bináris fa és a binary search tree (BST) alapú kódolási problémák listája az állásinterjúk Programozásából. A megoldáshoz kapcsolódtam, ahol csak lehetséges, de ha nincs link, akkor megoldást is találhat, ha csak egy Google keresést végez. Nagyon népszerű kérdések, és sokan már megoldották őket.
ahhoz, hogy a legtöbbet hozza ki ebből a listából, próbálja meg megoldani a problémát, mielőtt megoldást keresne, csak akkor az elméd működni fog, és kihívásokkal fog szembenézni, és megszilárdítja a megértést. Ha azonnal megnézed a megoldást, akkor csak 10% – ot tanulsz meg, de ha megpróbálod, megtanulod az egyes kérdések mögött álló fogalmak és trükkök 80-90% – át.
1) Hogyan találja meg a bináris fa legalacsonyabb közös ősét a Java-ban? (megoldás)
2) Hogyan nyomtatja ki a bináris fa bal oldali nézetét Java-ban? (solution)
3) írj egy programot, hogy építsenek egy fa Inorder és előrendelés traversal Java? (megoldás)
4) hogyan nyomtathat közös csomópontokat két bináris keresési fában Java-ban? (megoldás)
5) miért jobb választás a bináris halom a BST helyett a prioritási sor végrehajtásához? (válasz)
6) Hogyan lehet ellenőrizni, hogy egy adott bináris fa kiegyensúlyozott-e vagy sem? Írjon egy Java metódust, amely elfogad egy bináris fát, és true értéket ad vissza, ha kiegyensúlyozott vagy hamis. (megoldás)
7) Milyen előnyei vannak a bináris keresési fának a hashtable adatstruktúrával szemben? (answer)
8) Hogyan lehet ellenőrizni, hogy egy adott bináris fa egy másik bináris fa részfája? (megoldás)
két bináris fát adtál meg, és true értéket kell adnod, ha az első bináris fa a második részfája. A BT bináris fa részfája egy T fa, amely a BT csomópontjából és annak összes leszármazottjából áll. Például a következő esetben T1 A BT bináris fa részfája
9) Hogyan találja meg a bináris fa két csomópontjának távolságát? (megoldás)
10) Hogyan lehet megtalálni a legalacsonyabb közös őst egy bináris fában a Java-ban? (megoldás)
11) írjon egy Java programot annak ellenőrzésére, hogy egy adott bináris fa összes levele azonos szinten van-e? (megoldás)
12) hogyan konvertálhat egy adott bináris fát dupla linkelt listává a Java – ban? (megoldás)
13) írjon egy programot, hogy megtalálja egy adott bináris fa mélységét a Java – ban? (megoldás)
14) mi a különbség a bináris és a bináris keresési fák között? (válasz)
15) Mi az önkiegyensúlyozott fa? (válasz)
16) Mi az AVL fa? (válasz)
17) írjon egy Java programot a bináris keresési fa előrendelésének nyomtatásához? Adjon megoldást mind az iteráció, mind a rekurzió használatával? (megoldás)
18) nyomtassa ki a BST post-order bejárását? Adjon iteratív és rekurzív algoritmust (megoldás)
19) nyomtassa ki a BST inorder bejárását Java-ban? Adjon mind iteratív, mind rekurzív algoritmusokat (megoldás)
20) adott egy BST-t, ahol két csomópontot cserélnek? Hogyan lehet visszaállítani az eredeti BST? (megoldás)
21) hogyan konvertálhat egy bináris fát bináris keresési fává Java – ban? (megoldás)
22) keresse meg egy adott bináris fa legnagyobb BST részfáját a Java-ban? (megoldás)
23) írjon egy Java programot a csomópontok összekapcsolására ugyanazon a szinten, mint egy bináris fa? (megoldás)
24) Mi az a Trie adatstruktúra? (válasz)
25) Mi a különbség a bináris fa és a Trie között? (válasz)
26) Nyomtatás ősei egy adott csomópont egy bináris fa Java? (megoldás)
27) írjon egy Java programot egy adott csomópont szintjének kinyomtatására egy bináris fában? (megoldás)
28) Nyomtatás közös csomópontok két adott BST Java? (megoldás)
29) adjon bináris fát, nyomtassa ki az összes gyökér-levél útvonalat Java-ban? (megoldás)
30) Nyomtatás Inorder tree traversal rekurzió nélkül a Java – ban? (megoldás)
31) Print előrendelés fa bejárás nélkül rekurzió és verem Java? (megoldás)
32) Nyomtatás PostOrder fa bejárása rekurzió nélkül a Java – ban? (megoldás)
33) Java Program annak ellenőrzésére, hogy egy adott bináris fa BST-e vagy sem? (megoldás)
34) írjon egy Java programot a levélcsomópontok számolására egy bináris fában? (megoldás)
35) írjon egy Java programot, hogy megtalálja a bináris fa magasságát vagy mélységét? (megoldás)
36) hogyan találja meg, ha két adott bináris fa azonos? (megoldás)
írj egy metódust Java-ban, amely Elfogad két bináris fát, és true-t ad vissza, ha azonosak, különben false-t ad vissza.
37) hogyan lehet törölni egy adott csomópontot egy bináris keresési fáról a Java – ban? (megoldás)
38) írjon egy Java függvényt egy adott csomópont hozzáadásához egy bináris keresési fához? (megoldás)
39) Bináris fát nyomtasson függőleges sorrendben Java – ban? (megoldás)
40) mi a piros-fekete fa adatstruktúra? (answer)
Answer – Red-Black Tree egy önkiegyensúlyozó bináris keresési fa (BST), ahol minden csomópontnak a következő tulajdonságai vannak
a) minden csomópontnak van színe, piros vagy fekete.
b) a fa gyökere mindig fekete.
c) nincs két szomszédos piros csomópont (egy piros csomópontnak nem lehet piros szülője vagy piros gyermeke).
d) a gyökértől a NULL csomópontig minden útvonalnak ugyanannyi fekete csomópontja van.
az adatstruktúrákat a Java-ban is ellenőrizheti: Interjú frissítő tanfolyam az oktatásról, hogy többet megtudjon a vörös fekete fa Adatstruktúrájáról.
ez minden ebben a listában a top 40 bináris fák és bináris keresés fa alapú kódolási problémák programozási interjúk. Bár a megoldást Java programozási nyelven adják meg, szívesen megoldja ezeket a kérdéseket bármely választott programozási nyelven, például Python, C, C++, JavaScript, Ruby vagy akár Swift. A megoldást a megjegyzések részben is közzéteheti, hogy a közösség áttekinthesse a megoldást, és hasznos visszajelzést adjon.
minden jót a kódolási interjúhoz.
További Tanulás
11 Alapvető Kódolási Interjúkérdés.
mester a kódolási Interjú: adatstruktúrák + algoritmusok
Grokking a kódolási Interjú: Minták kódolási kérdésekre
Egyéb kódolási Interjúkérdések l tetszhet
- hogyan lehet megvalósítani a beillesztési rendezési algoritmust a Java-ban? (tutorial)
- hogyan kell alkalmazni a Quicksort algoritmus helyett Java? (tutorial)
- hogyan kell végrehajtani a buborék rendezési algoritmust Java-ban? (tutorial)
- különbség az összehasonlítás és a nem Összehasonlítás alapú rendezési algoritmus között? (válasz)
- hogyan kell alkalmazni a Bucket Sort Java-ban? (tutorial)
- hogyan lehet végrehajtani a Quicksort algoritmust rekurzió nélkül? (tutorial)
- hogyan kell elvégezni a bináris keresési algoritmus Java? (tutorial)
- hogyan lehet megtalálni az összes párt egy tömbben, amelynek összege egyenlő k (megoldás)
- hogyan lehet eltávolítani a másolatokat egy tömbből a Java-ban? (megoldás)
- hogyan lehet megtalálni a tömbben a legjelentősebb és legkisebb számot válogatás nélkül? (megoldás)
- hogyan találhatunk másolatokat egy rendezetlen tömbből a Java – ban? (megoldás)
- hogyan lehet megtalálni egy hiányzó számot egy rendezett tömbben? (megoldás)
- hogyan lehet megtalálni a hiányzó értéket egy 1-től 100-ig terjedő tömbből? (megoldás)
- 50 + adatstruktúra és algoritmusok problémák interjúkból (kérdések)
- kedvenc ingyenes tanfolyamaim az adatstruktúra mélyreható megismeréséhez (FreeCodeCamp)
- hogyan lehet eltávolítani egy elemet egy tömbből a Java-ban? (megoldás)
- hogyan ellenőrizhető, hogy egy tömb tartalmaz-e egy adott értéket? (megoldás)
- 10 ingyenes adatstruktúra és algoritmus tanfolyamok programozóknak (tanfolyamok)
- 100 + adatstruktúra kódolási problémák interjúkból (kérdések)
Köszönjük, hogy elolvasta ezt a cikket. Ha tetszik ez a cikk, kérjük, ossza meg barátaival és kollégáival. Ha bármilyen kérdése vagy visszajelzése van, akkor kérjük, dobjon el egy jegyzetet.
P. S. – Ha keres néhány ingyenes algoritmusok tanfolyamok, hogy javítsa a megértését adatszerkezet és algoritmusok, akkor is ellenőrizze a könnyen haladó adatstruktúrák természetesen Udemy. A Google szoftvermérnöke és Algoritmusszakértője írta, és teljesen ingyenes.