a lot of programmers and my readers have been asking me to share some binary tree-based coding interview questions, just like I have done for the array, linked list, string, software design, patterns, hash table, and data structure in general. Tämä tehtävä oli itse asiassa vireillä jo jonkin aikaa ja se oli jumissa minulle yrittää löytää ratkaisu jokaiseen kysymykseen olisin voinut kerätä. Niinpä päätin julkaista listan binääripuun haastattelukysymyksistä nyt ja mahdollisesti julkaista ratkaisun myöhemmin erillisenä artikkelina. Tämä on kuin käyttöliittymän luominen ja täytäntöönpanon tarjoaminen myöhemmin, jotta et estä muita ihmisiä, jotka ovat riippuvaisia käyttöliittymästä (itse asiassa tämä on yksi etu käyttöliittymän käyttämisestä Javassa tai muussa ohjelmointikielessä).
mikä on Binääripuun tietorakenne?
joka tapauksessa, palatakseni binääripuuhun, haluaisin toistaa joitakin hyödyllisiä kohtia puun tietorakenteesta yleensä, jotka auttavat sinua ratkaisemaan nämä kysymykset itse:
1) puu on hierarkkinen tietorakenne toisin kuin lineaarinen array tai linkitetty lista, jotka ovat lineaarisia. Tämä tarkoittaa, että voit tallentaa hierarkkista tietoa käyttämällä puun tietorakennetta, kuten organisaatiorakennetta, sukupuuta jne.
2) puussa on solmuja ja lapsia. Ylintä eli ensimmäistä solmua kutsutaan juureksi.
3) Jos halutaan visualisoida, puun tietorakenne on kuin reaalimaailmassa ylösalaisin oleva puu. Kun ympärillä näkee puita, niiden juuret ovat pohjassa, mutta kun piirtää puun tietorakenteen ohjelmoinnissa tai tietojenkäsittelytieteessä, niiden juuri on päällä.
4) binääripuu on erikoispuu, jossa voi saada korkeintaan kaksi lasta. Tämä tarkoittaa, yksi solmu voi joko ei lasta, yksi lapsi, tai kaksi lasta. He eivät voi saada kolmea tai useampaa lasta.
5) lehtisolmuksi kutsutaan kaikkia niitä solmuja, joilla ei ole lapsia.
6) Binäärihakupuu on binääripuun erityistyyppi, jossa vasemman alatien arvot ovat pienempiä tai yhtä suuria kuin juuri ja oikean alatien solmujen arvot ovat suurempia tai yhtä suuria kuin juuri. Tämä tarjoaa lajittelurakenteen binääriseen hakupuuhun, mikä tekee etsinnästä todella nopeaa.
voit myös tarkistaa Tietorakenteet ja algoritmit: Deep Dive käyttäen Java course on Udemy-kurssia saadaksesi lisätietoja binäärihakupuista. Se on yksi parhaista kursseista päivittää tietorakenteen ja algoritmit taitoja.
7) binäärihakupuu liittyy läheisesti binäärihakuun, joka toimii periaatteella vähentää tulokoko puoleen jokaisen iteraation jälkeen. Tämä tekee etsinnästä todella nopeaa ja voit löytää minkä tahansa elementin binäärihakupuusta O(logN) – ajassa, mutta vain, jos puu on tasapainossa.
8) on kaksi tapaa läpäistä puun tietorakenne, syvyys ensin tai taso ensin. Syvyyssuunnassa-ensin mennään alas, kunnes ei ole enää solmua, jossa käydä, ja sitten palataan saman tason solmuihin.
tasojärjestyksessä ollessaan käydään läpi kaikki saman tason solmut ennen seuraavalle tasolle siirtymistä. On myös pre-order, post-order, Ja in-order traversal binary, jota käytetään kulkemaan solmuja binary puu. Inorder traversal on erityinen, koska se käy kaikki solmut lajiteltu järjestyksessä.
9) tasapainoinen binääripuu on kuin olisi yhtä monta solmua jokaisessa välipisteessä, jos sinulla on kaikki solmut ainoassa vasemmassa tai oikeassa välipisteessä kuin binääripuu muuttuu tasapainottomaksi ja se toimii linkitetyn luettelon tavoin, kuten alla olevassa kaaviossa on esitetty:
10) epätasapainoinen tai tasapainoton binäärihakupuu toimii kuin linkitetty lista, jossa haku vie O(n) aikaa verrattuna O(logN) aikaan tasapainoisessa binäärihakupuussa.
nämä ovat joitakin tärkeitä kohtia, jotka jokaisen ohjelmoijan tulisi tietää binääripuun tietorakenteesta. Se auttaa ratkomaan puurakenteisia koodausongelmia. Jos haluat oppia lisää binääripuusta ja muista tietorakenteista, ehdotan, että liityt hyvään tietorakenteeseen ja algoritmikurssiin, kuten tietorakenteisiin ja algoritmeihin: syväsukellus Java-ohjelmalla Udemyssa, jotta voit harjata perusasiasi.
40+ Binary Tree Interview Questions for Java Programmers
Without wasting any more of your time, here is my list of the binary tree and binary search tree (BST) based coding problems from Programming Job interviews. Olen linkittänyt ratkaisuun aina, kun se on mahdollista, mutta jos linkkiä ei ole, voit myös löytää ratkaisun vain tekemällä Google-haun. Ne ovat hyvin suosittuja kysymyksiä ja monet ihmiset ovat jo ratkaisseet ne.
saadaksesi eniten tästä listasta, yritä ratkaista ongelma ennen kuin etsit ratkaisua vasta sitten mielesi toimii ja kohtaat haasteita ja lujitat ymmärrystäsi. Jos katsot ratkaisua heti, opit vain 10%, mutta jos yrität, opit 80-90% käsitteistä ja tempuista jokaisen kysymyksen takana.
1) Miten Binääripuun alin yhteinen esi-isä löytyy Jaavalta? (ratkaisu)
2) Miten binääripuun vasen näkymä painetaan Jaavalla? (ratkaisu)
3) Kirjoita ohjelma puun rakentamiseksi Jaavan Inder-ja pre order-traverssalista? (ratkaisu)
4) Miten Javan kahden binäärihakupuun yhteiset solmut tulostetaan? (ratkaisu)
5) Miksi binary heap on parempi vaihtoehto kuin BST Prioriteettijonon toteuttamiseksi? (vastaus)
6) Miten tarkistaa, onko jokin binääripuu tasapainossa vai ei? Kirjoita Java-menetelmä, joka hyväksyy binääripuun ja palauttaa true, jos se on muuten tasapainossa tai epätosi. (ratkaisu)
7) Mitä etuja binäärihakupuulla on hajautettuun tietorakenteeseen verrattuna? (vastaus)
8) Miten tarkistetaan, onko annettu binääripuu toisen binääripuun osapuu? (ratkaisu)
olet antanut kaksi binääripuuta, ja sinun on palautettava true, jos ensimmäinen binääripuu on toisen osapuu. Binääripuun BT alalaji on Puu T, joka koostuu BT: n solmusta ja kaikista sen jälkeläisistä. Esimerkiksi seuraavassa tapauksessa T1 on binääripuun osapuu BT
9) Miten löytää kahden solmun välinen etäisyys binääripuussa? (ratkaisu)
10) Miten löytää alin yhteinen esi-isä binääripuusta Jaavalla? (ratkaisu)
11) Kirjoita Java-ohjelma tarkistamaan, ovatko kaikki tietyn binääripuun lehdet samalla tasolla? (ratkaisu)
12) miten tietty binääripuu muunnetaan kaksoislinkittyyn listaan Javassa? (ratkaisu)
13) Kirjoita ohjelma tietyn binääripuun syvyyden löytämiseksi Jaavalla? (ratkaisu)
14) Mitä eroa on binäärisillä ja binäärisillä hakupuilla? (vastaus)
15) mikä on omavarainen puu? (vastaus)
16) Mikä on AVL-Puu? (vastaus)
17) Kirjoita Java-ohjelma binäärihakupuun ennakkotilauksen tulostamiseksi? Anna ratkaisu käyttäen sekä iteraatio ja rekursio? (ratkaisu)
18) tulosta BST: n post-order traversal? Anna iteratiivinen ja rekursiivinen algoritmi (ratkaisu)
19) Print the inorder traversal of a BST in Java? Anna sekä Iteratiiviset että rekursiiviset algoritmit (ratkaisu)
20) olet antanut BST: n, jossa kaksi solmua vaihdetaan? Miten palautat alkuperäisen BST: n? (ratkaisu)
21) miten Binääripuu muunnetaan binäärihakupuuksi Jaavalla? (ratkaisu)
22) Löydätkö tietyn binääripuun suurimman BST-osapuun Jaavalta? (ratkaisu)
23) Kirjoita Java-ohjelma, joka yhdistää samalla tasolla olevia solmuja kuin binääripuu? (ratkaisu)
24) mikä on Trie-tietorakenne? (vastaus)
25) mikä on Binääripuun ja kolmikon ero? (vastaus)
26) binääripuun tietyn solmun esi-isät Jaavalla? (ratkaisu)
27) Kirjoita Java-ohjelma, joka tulostaa tietyn solmun tason binääripuussa? (ratkaisu)
28) tulosta kahden annetun BST: n yhteiset solmut Jaavalla? (ratkaisu)
29) Anna binääripuu, tulosta kaikki juuresta lehteen-polku Jaavalla? (ratkaisu)
30) Print in order tree traversal without recursion in Java? (ratkaisu)
31) tulosta ennakkotilaus tree traversal ilman rekursiota ja pino Javalla? (ratkaisu)
32) Print Posterder tree traversal ilman rekursiota Javassa? (ratkaisu)
33) Java-ohjelma tarkistaa, onko tietty binääripuu BST vai ei? (ratkaisu)
34) kirjoitetaanko Java-ohjelma binääripuun lehtien solmujen laskemiseksi? (ratkaisu)
35) Kirjoita Java-ohjelma binääripuun korkeuden tai syvyyden löytämiseksi? (ratkaisu)
36) miten löydät, jos kaksi annettua binääripuuta ovat samat? (ratkaisu)
Kirjoita Javalla menetelmä, joka hyväksyy kaksi binääripuuta ja palauttaa true jos ne ovat samat, muuten palauttaa false.
37) miten tietty solmu poistetaan binäärihakupuusta Javassa? (ratkaisu)
38) Kirjoita Java-funktio, joka lisää tietyn solmun binäärihakupuuhun? (ratkaisu)
39) printtaa binääripuu pystyjärjestyksessä Jaavalla? (ratkaisu)
40) mikä on punamusta puun tietorakenne? (vastaus)
vastaus-punamusta puu on itsestään tasapainottava Binäärihakupuu (BST), jossa jokaisella solmulla on seuraavat ominaisuudet
a) jokaisella solmulla on väri, joko punainen tai musta.
b) puun juuri on aina musta.
c) kahta vierekkäistä punaista solmua ei ole (punaisella solmulla ei voi olla punaista vanhempaa tai punaista lasta).
d) jokaisella polulla juuresta NOLLASOLMUUN on sama määrä mustia solmuja.
Voit myös tarkistaa Tietorakenteet Java: an Interview-kertauskurssin Educatiivista saadaksesi lisätietoa Punamustan puun Tietorakenteesta.
That ’ s all in this list of top 40 binary trees and binary search tree based coding problems from programming interviews. Vaikka ratkaisu on annettu Java-ohjelmointikielellä, olet tervetullut ratkaisemaan nämä kysymykset millä tahansa valitsemallasi ohjelmointikielellä, kuten Python, C, C++, JavaScript, Ruby tai jopa Swift. Voit myös julkaista ratkaisusi kommenttiosiossa, jotta yhteisö voi tarkastella ratkaisuasi ja antaa hyödyllistä palautetta.
kaikkea hyvää koodaushaastatteluun.
Jatko-Oppiminen
11 Olennaista Koodaushaastattelukysymystä.
Master the Coding Interview: Tietorakenteet + algoritmit
Grokking the Coding Interview: Patterns for Coding Questions
Other Coding Interview Questions l you may like
- How to implement the insertion sort algorithm in Java? (tutorial)
- miten Quicksort-algoritmia sovelletaan Javassa? (tutorial)
- miten toteuttaa kuplan lajittelualgoritmi Javassa? (tutorial)
- ero vertailun ja ei-Vertailupohjaisen lajittelualgoritmin välillä? (vastaus)
- miten Ämpärilajittelua käytetään Javassa? (tutorial)
- miten toteuttaa Quicksort-algoritmi ilman rekursiota? (tutorial)
- kuinka suorittaa binäärinen hakualgoritmi Javassa? (tutorial)
- Miten löytää kaikki pareja rivistä, jonka summa on yhtä suuri kuin k (ratkaisu)
- Miten poistaa kaksoiskappaleet rivistä Javassa? (ratkaisu)
- Miten löytää joukon merkittävin ja pienin luku ilman lajittelua? (ratkaisu)
- Miten löytää kaksoiskappaleet lajittelemattomasta ryhmästä Javassa? (ratkaisu)
- Miten löytää yksi puuttuva numero lajitellusta ryhmästä? (ratkaisu)
- Miten löytää puuttuva arvo joukosta, joka sisältää 1-100? (ratkaisu)
- 50+ tietorakenteen ja algoritmien ongelmat haastatteluista (kysymykset)
- my favorite free courses to learn data Structure in-depth (FreeCodeCamp)
- How to remove a element from an array in Java? (ratkaisu)
- Miten tarkistaa, sisältääkö ryhmä tietyn arvon? (ratkaisu)
- 10 ilmaista tietorakenne-ja Algoritmikurssia ohjelmoijille (kurssit)
- 100+ tietorakenteen koodausongelmia haastatteluista (kysymykset)
kiitos tämän artikkelin lukemisesta. Jos pidät tästä artikkelista, jaa se ystäviesi ja kollegoidesi kanssa. Jos sinulla on kysyttävää tai palautetta, jätä viesti.
P. S. – Jos etsit vapaita Algoritmikursseja tietorakenteen ja algoritmien ymmärtämisen parantamiseksi, kannattaa myös käydä Udemyn Easy to Advanced Data Structures-kurssi. Sen on kirjoittanut Googlen ohjelmistoinsinööri ja Algoritmiasiantuntija, ja se on täysin ilmainen.