veel programmeurs en mijn lezers hebben me gevraagd om een aantal binaire tree-based coding interview vragen te delen, net zoals Ik heb gedaan voor de array, linked list, string, software design, patterns, hash table, en data structuur in het algemeen. Deze taak was eigenlijk al geruime tijd in behandeling en het zat vast voor mij proberen om de oplossing te vinden voor elke vraag die ik kon hebben verzameld. Dus, ik besloot om de lijst van binaire boom interview Vragen nu te publiceren en eventueel publiceren van de oplossing als een apart artikel later. Dit is als het creëren van een interface en het verstrekken van implementatie later, zodat u niet blokkeren andere mensen die afhankelijk zijn van uw interface (eigenlijk, dit is een voordeel van het gebruik van de interface in Java of een andere programmeertaal).
Wat is de structuur van binaire Boomgegevens?
hoe dan ook, terugkomend op een binaire boom, wil ik enkele nuttige punten over de boomgegevensstructuur in het algemeen herhalen, die u zullen helpen om deze vragen zelf op te lossen:
1) Een boom is de hiërarchische gegevensstructuur in tegenstelling tot een array of gekoppelde lijst die lineair zijn. Dit betekent dat u hiërarchische informatie kunt opslaan met behulp van een boomgegevensstructuur, zoals een organisatiestructuur, stamboom, enz.
2) een boom heeft knooppunten en kinderen. Het bovenste of eerste knooppunt wordt de root genoemd.
3) Als u wilt visualiseren, is de boomgegevensstructuur als een omgekeerde boom in de echte wereld. Ik bedoel, als je bomen om je heen ziet, zitten hun wortels in de bodem, maar als je een boomgegevensstructuur tekent in programmeren of Informatica, zit hun wortel bovenaan.
4) een binaire boom is een speciale boom, waar je maximaal twee kinderen kunt krijgen. Dit betekent, één knoop kan geen kind, één kind, of twee kinderen. Ze kunnen geen drie of meer kinderen krijgen.
5) alle knopen die geen kinderen hebben staan bekend als een bladknoop.
6) binaire zoekboom is een speciaal type binaire boom waar de waarden van de linker subbomen kleiner of gelijk zijn aan root en de waarden van knooppunten op rechter subbomen groter of gelijk zijn aan root. Dit zorgt voor een sorteerstructuur voor een binaire zoekboom, wat het zoeken erg snel maakt.
u kunt ook datastructuren en algoritmen controleren: Deep Dive met behulp van Java course on Udemy om meer te weten te komen over binaire zoekbomen. Het is een van de beste cursussen om uw gegevensstructuur en algoritmen vaardigheden te vernieuwen.
7) de binaire zoekboom wordt nauw geassocieerd met een binaire zoekopdracht die werkt op het principe van het verminderen van de invoergrootte tot de helft na elke iteratie. Dit maakt zoeken erg snel en je kunt elk element in de binaire zoekboom vinden op O(logN) tijd, maar alleen als de boom in evenwicht is.
8) er zijn twee manieren om een boomgegevensstructuur te doorlopen, depth-first, of level first. In depth-eerst, ga je naar beneden totdat er geen knooppunt meer te bezoeken en dan kom je terug naar knooppunten te bezoeken op hetzelfde niveau.
terwijl u in level order traversal bent, bezoekt u alle knooppunten op hetzelfde niveau voordat u naar het volgende niveau gaat. Er is ook pre-order, post-order en in-order traversal voor binair die wordt gebruikt om knooppunten van een binaire boom te doorkruisen. In volgorde traversal is speciaal omdat het alle knooppunten in gesorteerde volgorde bezoekt.
9) een gebalanceerde binaire boom is als het hebben van een gelijk aantal knooppunten op elke subboom als u alle knooppunten op de enige linker of rechter subboom dan uw binaire boom zal niet-gebalanceerd en het zal fungeren als een gekoppelde lijst zoals weergegeven in het diagram hieronder:
10) een ongebalanceerde of niet-gebalanceerde binaire zoekboom werkt als een gekoppelde lijst waar een zoekopdracht O(n) tijd in beslag neemt in tegenstelling tot o(logN) tijd in een gebalanceerde binaire zoekboom.
dit zijn enkele van de belangrijke punten die elke programmeur zou moeten weten over de binaire boomgegevensstructuur. Het zal u helpen om boom-gebaseerde codeerproblemen op te lossen. Als je meer wilt weten over de binaire boom en andere datastructuren, stel ik voor dat je deelneemt aan een goede datastructuur en algoritme cursus zoals datastructuren en algoritmen: Deep Dive met behulp van Java op Udemy om je fundamentals te poetsen.
40+ binaire Tree Interview Vragen voor Java programmeurs
zonder nog meer van uw tijd te verspillen, hier is mijn lijst van de binaire tree en binaire zoekboom (BST) gebaseerde coderingsproblemen van het programmeren van sollicitatiegesprekken. Ik heb gekoppeld aan oplossing waar mogelijk, maar als er geen link, kunt u ook een oplossing te vinden door gewoon het doen van een Google-zoekopdracht. Het zijn erg populaire vragen en veel mensen hebben ze al opgelost.
om het meeste uit deze lijst te halen, probeer het probleem op te lossen voordat je naar een oplossing zoekt, alleen dan zal je geest werken en zul je uitdagingen tegenkomen en je begrip consolideren. Als je onmiddellijk naar de oplossing kijkt, leer je slechts 10%, maar als je het probeert, leer je 80 tot 90% van de concepten en trucs achter elke vraag.
1) Hoe vind je de laagste gemeenschappelijke voorouder van een binaire boom in Java? (solution)
2) Hoe print je de linkerweergave van een binaire boom in Java? (solution)
3) Een programma schrijven om een boomstructuur te construeren van in volgorde en pre-volgorde traversal in Java? (solution)
4) Hoe print u gemeenschappelijke knopen in twee binaire zoekbomen in Java? (oplossing)
5) Waarom is binaire heap een betere keuze dan BST voor het implementeren van Priority Queue? (antwoord)
6) Hoe controleer je of een bepaalde binaire boom gebalanceerd is of niet? Schrijf een Java methode, die een binaire boom accepteert en waar retourneert als het gebalanceerd of onwaar is. (solution)
7) Wat zijn enkele voordelen van een binaire zoekboom ten opzichte van een hashtable gegevensstructuur? (antwoord)
8) Hoe controleer je of een gegeven binaire boom een subboom is van een andere binaire boom? (solution)
u hebt twee binaire bomen gegeven, en u moet true teruggeven als een eerste binaire boom een subboom is van de tweede. Een subtree van binaire boom BT is een boom T die bestaat uit een knooppunt van BT en al zijn afstammelingen. Bijvoorbeeld, in het volgende geval, T1 is een subboom van BT
9) Hoe vind je de afstand tussen twee knopen in een binaire boom? (solution)
10) Hoe vind ik de laagste gemeenschappelijke voorouder in een binaire boom in Java? (solution)
11) Een Java-programma schrijven om te controleren of alle bladeren van een bepaalde binaire boom op hetzelfde niveau staan? (solution)
12) hoe converteer je een bepaalde binaire boom naar een dubbele lijst in Java? (oplossing)
13) Een programma schrijven om een diepte van een bepaalde binaire boom in Java te vinden? (oplossing)
14) Wat is het verschil tussen binaire en binaire zoekbomen? (antwoord)
15) Wat is een zelfgebalanceerde boom? (antwoord)
16) Wat is de AVL-boom? (antwoord)
17) Een Java-programma schrijven om pre-order traversal van een binaire zoekboom af te drukken? Een oplossing geven met zowel iteratie als recursie? (oplossing)
18) de post-order traversal van BST afdrukken? Geef iteratief en recursief algoritme (oplossing)
19) Print de in-volgorde traversal van een BST in Java? Geef zowel iteratieve als recursieve algoritmen (oplossing)
20) U hebt een BST gegeven, waarbij twee knooppunten worden verwisseld? Hoe herstel je de originele BST? (solution)
21) hoe converteer je een binaire boom naar een binaire zoekboom in Java? (oplossing)
22) de grootste BST-subboom van een bepaalde binaire boom in Java vinden? (oplossing)
23) Een Java-programma schrijven om knopen op hetzelfde niveau als een binaire boom te verbinden? (oplossing)
24) Wat is een Trie-gegevensstructuur? (antwoord)
25) Wat is het verschil tussen de binaire boom en Trie? (antwoord)
26) voorouders van een gegeven knooppunt van een binaire boom in Java afdrukken? (oplossing)
27) Een Java-programma schrijven om het niveau van een bepaald knooppunt in een binaire boom af te drukken? (oplossing)
28) gemeenschappelijke knopen van twee gegeven BST in Java afdrukken? (oplossing)
29) Geef een binaire boom, print alle root-to-leaf pad in Java? (oplossing)
30) in volgorde tree traversal afdrukken zonder recursie in Java? (oplossing)
31) Tree traversal printen zonder recursie en stack in Java? (oplossing)
32) Postorderstructuur zonder recursie in Java afdrukken? (solution)
33) Java-programma om te controleren of een bepaalde binaire boom BST is of niet? (oplossing)
34) Een Java-programma schrijven om bladknopen in een binaire boom te tellen? (oplossing)
35) Een Java-programma schrijven om de hoogte of diepte van een binaire boom te vinden? (oplossing)
36) hoe vind je dat twee gegeven binaire bomen hetzelfde zijn? (solution)
Schrijf een methode in Java, die twee binaire bomen accepteert en waar retourneert als ze hetzelfde zijn, anders onwaar retourneert.
37) Hoe verwijder je een bepaald knooppunt uit een binaire zoekboom in Java? (oplossing)
38) Een Java-functie schrijven om een bepaald knooppunt toe te voegen aan een binaire zoekboom? (oplossing)
39) een binaire boom in verticale volgorde afdrukken in Java? (oplossing)
40) Wat is de rood-zwarte Boomgegevensstructuur? (answer)
Answer-Red-Black Tree is een zelfbalancerende binaire zoekboom (BST) waarbij elk knooppunt de volgende eigenschappen heeft
a) elk knooppunt heeft een kleur, rood of zwart.
b) de wortel van de boom is altijd zwart.
c) Er zijn geen twee aangrenzende rode knopen (een rode knoop kan geen rode ouder of rood kind hebben).
d) elk pad van de root naar een NULL node heeft hetzelfde aantal zwarte nodes.
u kunt ook datastructuren in Java controleren: een opfriscursus Educatief Voor een Interview om meer te weten te komen over de datastructuur van de roodzwarte boom.
dat is alles in deze lijst van top 40 binaire bomen en binaire zoek boom gebaseerde codering problemen van het programmeren interviews. Hoewel de oplossing wordt gegeven in Java programmeertaal, bent u van harte welkom om deze vragen op te lossen op elke programmeertaal van uw keuze, zoals Python, C, C++, JavaScript, Ruby, of zelfs Swift. U kunt uw oplossing ook plaatsen in de commentaren sectie, zodat de gemeenschap uw oplossing kan bekijken en een aantal nuttige feedback kan geven.
het beste voor uw codeerinterview.
Vervolgonderwijs
11 Essentiële Vragen Over Codering.
Master The Coding Interview:Data Structures + Algorithms
Grokking the Coding Interview: Patterns for Coding Questions
Other Coding Interview Questions l u zult het leuk vinden
- hoe implementeer ik het invoegalgoritme in Java? (tutorial)
- hoe het Quicksort-algoritme in Java toe te passen? (tutorial)
- hoe implementeer ik het Bubble sorteeralgoritme in Java? (tutorial)
- verschil tussen Vergelijkingsalgoritme en niet-Vergelijkingsgebaseerd sorteeralgoritme? (antwoord)
- hoe Bucket Sorteer ik in Java? (tutorial)
- hoe het QuickSort-algoritme te implementeren zonder recursie? (tutorial)
- hoe een binair zoekalgoritme uitvoeren in Java? (tutorial)
- hoe vind ik alle paren in een array waarvan de som gelijk is aan k (solution)
- hoe verwijder ik duplicaten uit een array in Java? (solution)
- Hoe vind ik het meest significante en kleinste getal in een array zonder te sorteren? (solution)
- hoe duplicaten van een ongesorteerde array in Java te vinden? (solution)
- Hoe vind ik een ontbrekend getal in een gesorteerde array? (solution)
- hoe vind ik een ontbrekende waarde uit een array die 1 tot 100 bevat? (solution)
- 50+ gegevensstructuur en algoritmen problemen uit Interviews (questions)
- Mijn favoriete gratis cursussen om gegevensstructuur diepgaand te leren (FreeCodeCamp)
- hoe een element uit een array in Java te verwijderen? (solution)
- Hoe controleer ik of een array een bepaalde waarde bevat? (oplossing)
- 10 vrije data structuur en algoritme cursussen voor programmeurs (cursussen)
- 100+ Data structuur codering problemen uit Interviews (vragen)
Bedankt voor het lezen van dit artikel. Als je dit artikel leuk vindt, deel het dan met je vrienden en collega ‘ s. Als u vragen of feedback, dan kunt u een notitie.
P. S. – Als u op zoek bent naar een aantal gratis algoritmen cursussen om uw begrip van gegevensstructuur en algoritmen te verbeteren, dan moet u ook de Easy to Advanced Data Structures cursus over Udemy controleren. Het is geschreven door een Google Software Engineer en algoritme expert, en het is volledig gratis.