o mulțime de programatori și cititorii mei mi-au cerut să împărtășesc unele binare copac pe bază de codificare interviu întrebări, la fel cum am făcut pentru matrice, lista legate, șir, software design, modele, tabel hash, și structura de date în general. Această sarcină a fost de fapt în așteptare pentru ceva timp și a fost blocat pentru mine încercarea de a găsi soluția pentru fiecare întrebare aș fi putut colectate. Deci, am decis să publice lista de întrebări binare interviu copac acum și, eventual, publica soluția ca un articol separat mai târziu. Acest lucru este ca și cum ați crea o interfață și ați oferi implementarea ulterioară, astfel încât să nu blocați alte persoane care depind de interfața dvs. (de fapt, acesta este un avantaj al utilizării interfeței în Java sau în orice alt limbaj de programare).
ce este structura de date arbore binar?
oricum, revenind la un copac binar, aș dori să re-itereze unele dintre punctele utile despre structura de date copac, în general, care vă va ajuta să rezolve aceste întrebări pe cont propriu:
1) un copac este structura de date ierarhice, spre deosebire de o matrice sau listă legată care sunt liniare. Aceasta înseamnă că puteți stoca informații ierarhice folosind o structură de date arbore, cum ar fi o structură de organizație, arbore genealogic etc.
2) un copac are noduri și copii. Primul sau primul nod se numește rădăcină.
3) Dacă doriți să vizualizați, structura de date copac este ca un copac inversat în lumea reală. Adică, atunci când vezi copaci în jurul tău, rădăcinile lor sunt în partea de jos, dar atunci când desenați o structură de date copac în programare sau informatică, rădăcina lor este pe partea de sus.
4) un copac binar este un copac special, unde puteți avea cel mult doi copii. Aceasta înseamnă că un nod nu poate nici un copil, un copil sau doi copii. Nu pot avea trei copii sau mai mulți.
5) toate nodurile care nu au copii sunt cunoscute ca un nod de frunze.
6) arborele de căutare binar este un tip special de arbore binar în care valorile subarborilor stângi sunt mai mici sau egale cu rădăcina și valorile nodurilor din subarborii drepți sunt mai mari sau egale cu rădăcina. Aceasta oferă o structură de sortare într-un arbore de căutare binar, ceea ce face căutarea foarte rapidă.
de asemenea, puteți verifica structurile și algoritmii de date: Deep Dive folosind cursul Java pe Udemy pentru a afla mai multe despre arborii de căutare binari. Este unul dintre cele mai bune cursuri pentru a vă reîmprospăta abilitățile de structură și algoritmi de date.
7) arborele de căutare binar este strâns asociat cu o căutare binară care funcționează pe principiul reducerii dimensiunii intrării la jumătate după fiecare iterație. Acest lucru face ca căutarea să fie foarte rapidă și puteți găsi orice element în arborele de căutare binar în timpul O(logN), dar numai dacă arborele este echilibrat.
8) există două moduri de a traversa o structură de date copac, adâncime-primul, sau primul nivel. În profunzime-mai întâi, coborâți până când nu mai există nod de vizitat și apoi reveniți pentru a vizita noduri la același nivel.
în timp ce în nivel pentru traversal, vizitați toate nodurile la același nivel înainte de a trece la nivelul următor. Există, de asemenea, traversare pre-comandă, post-comandă și în ordine pentru binar care este folosit pentru a traversa nodurile unui arbore binar. Inorder traversal este special, deoarece vizitează toate nodurile în ordine sortată.
9) un arbore binar echilibrat este ca și cum ai avea un număr egal de noduri pe fiecare subarbor dacă ai toate nodurile pe singurul subarbor stânga sau dreapta decât arborele tău binar va deveni ne-echilibrat și va acționa ca o listă legată așa cum se arată în diagrama de mai jos:
10) un arbore de căutare binar dezechilibrat sau neechilibrat acționează ca o listă legată în care o căutare va dura O(n) timp, spre deosebire de o(logN) timp într-un arbore de căutare binar echilibrat.
acestea sunt câteva dintre punctele importante pe care fiecare programator ar trebui să le cunoască despre structura de date a arborelui binar. Vă va ajuta să rezolvați problemele de codificare bazate pe arbori. Dacă doriți să aflați mai multe despre arborele binar și alte structuri de date, vă sugerez să vă alăturați unui curs bun de structură și algoritm de date, cum ar fi structuri de date și algoritmi: Deep Dive folosind Java pe Udemy pentru a vă peria fundamentele.
40+ binar copac Interviu Întrebări pentru programatori Java
fără a pierde mai mult timp, aici este lista mea de copac binar și binar copac de căutare (BST) probleme de codificare pe bază de programare interviuri de locuri de muncă. Am legat de soluție ori de câte ori este posibil, dar dacă nu există nici un link, puteți găsi, de asemenea, o soluție de a face doar o căutare Google. Sunt întrebări foarte populare și mulți oameni le-au rezolvat deja.
pentru a profita la maximum de această listă, încercați să rezolvați problema înainte de a căuta o soluție numai atunci mintea dvs. va funcționa și vă veți confrunta cu provocări și vă veți consolida înțelegerea. Dacă te uiți imediat la soluție, vei învăța doar 10%, dar dacă încerci, vei învăța 80 până la 90% din concepte și trucuri din spatele fiecărei întrebări.
1) Cum găsiți cel mai mic strămoș comun al unui copac binar în Java? (soluție)
2) Cum imprimați vizualizarea din stânga a unui arbore binar în Java? (soluție)
3) Scrie un program pentru a construi un copac de la Inorder și precomandă traversal în Java? (soluție)
4) Cum imprimați noduri comune în doi arbori de căutare binari în Java? (soluție)
5) de ce Binary heap este o alegere mai bună față de BST pentru implementarea cozii prioritare? (răspuns)
6) Cum verificați dacă un anumit arbore binar este echilibrat sau nu? Scrieți o metodă Java, care acceptă un arbore binar și returnează true dacă este echilibrat sau fals altfel. (soluție)
7) care sunt câteva avantaje ale unui arbore de căutare binar față de o structură de date hashtable? (răspuns)
8) Cum verificați dacă un arbore binar dat este un subarbor al unui alt arbore binar? (soluție)
ați dat doi arbori binari și trebuie să returnați true dacă un prim arbore binar este un subarbor al celui de-al doilea. Un subarbor binar copac BT este un copac t constând dintr-un nod de la BT și toți descendenții săi. De exemplu, în următorul caz, T1 este un subarbor de arbore binar BT
9) Cum găsiți distanța dintre două noduri într-un arbore binar? (soluție)
10) Cum de a găsi cel mai mic strămoș comun într-un copac binar în Java? (soluție)
11) scrieți un program Java pentru a verifica dacă toate frunzele unui arbore binar dat sunt la același nivel? (soluție)
12) Cum convertiți un arbore binar dat în listă dublă legată în Java? (soluție)
13) scrieți un program pentru a găsi o adâncime a unui arbore binar dat în Java? (soluție)
14) care este diferența dintre arborii de căutare binari și binari? (răspuns)
15) Ce este un copac auto-echilibrat? (răspuns)
16) Ce este arborele AVL? (răspuns)
17) scrieți un program Java pentru a imprima traversarea precomandă a unui arbore de căutare binar? Oferiți o soluție folosind atât iterația, cât și recursivitatea? (soluție)
18) imprimați traversarea post-comandă a BST? Dă algoritm iterativ și recursiv (soluție)
19) imprimați traversarea inorder a unui BST în Java? Dați atât algoritmi iterativi, cât și recursivi (soluție)
20) ați dat un BST, unde sunt schimbate două noduri? Cum recuperați BST-ul original? (soluție)
21) cum convertiți un arbore binar într-un arbore de căutare binar în Java? (soluție)
22) Găsiți cel mai mare subarbor BST al unui arbore binar dat în Java? (soluție)
23) scrieți un program Java pentru a conecta nodurile la același nivel cu un arbore binar? (soluție)
24) Ce este o structură de date Trie? (răspuns)
25) care este diferența dintre arborele binar și Trie? (răspuns)
26) imprimați strămoșii unui nod dat al unui arbore binar în Java? (soluție)
27) scrieți un program Java pentru a imprima nivelul unui nod dat într-un arbore binar? (soluție)
28) Print noduri comune de două dat BST în Java? (soluție)
29)dă un copac binar, imprima toate calea rădăcină-la-frunze în Java? (soluție)
30) Print Inorder copac traversal fără recursivitate în Java? (soluție)
31) Print preorder copac traversal fără recursivitate și stivă în Java? (soluție)
32) Print postorder copac traversal fără recursivitate în Java? (soluție)
33) program Java pentru a verifica dacă un arbore binar dat este BST sau nu? (soluție)
34) scrieți un program Java pentru a număra nodurile frunzelor într-un copac binar? (soluție)
35) scrieți un program Java pentru a găsi înălțimea sau adâncimea unui copac binar? (soluție)
36) cum găsiți dacă doi copaci binari dat sunt la fel? (soluție)
scrieți o metodă în Java, care va accepta doi copaci binari și va reveni true dacă sunt aceiași, altfel returnați false.
37) cum ștergeți un nod dat dintr-un arbore de căutare binar în Java? (soluție)
38) scrieți o funcție Java pentru a adăuga un nod dat într-un arbore de căutare binar? (soluție)
39) imprimați un arbore binar în ordine verticală în Java? (soluție)
40) care este structura de date copac roșu-negru? (answer)
Answer – Red-Black Tree este un arbore de căutare binar de auto-echilibrare (BST) în care fiecare nod are următoarele proprietăți
a) fiecare nod are o culoare, fie roșie, fie neagră.
B) rădăcina copacului este întotdeauna neagră.
c) nu există două noduri roșii adiacente (un nod roșu nu poate avea un părinte roșu sau un copil roșu).
d) fiecare cale de la rădăcină la un nod nul are același număr de noduri negre.
puteți verifica, de asemenea, structuri de date în Java: Un curs de perfecționare interviu pe educativ pentru a afla mai multe despre structura de date Red black Tree.
asta e tot în această listă de top 40 copaci binare și binare copac de căutare pe bază de codificare probleme de interviuri de programare. Deși soluția este dată în limbajul de programare Java, sunteți binevenit să rezolvați aceste întrebări pe orice limbaj de programare la alegere, cum ar fi Python, C, C++, JavaScript, Ruby sau chiar Swift. De asemenea, puteți posta soluția dvs. în secțiunea de comentarii, astfel încât comunitatea să vă poată revizui soluția și să ofere un feedback util.
toate cele bune pentru interviul dvs. de codificare.
Învățare Suplimentară
11 Întrebări Esențiale De Interviu De Codificare.
Master interviul de codificare: structuri de date + algoritmi
Grokking interviul de codificare: Modele pentru întrebări de codificare
alte întrebări de interviu de codificare l ați putea dori
- cum să implementați algoritmul de sortare a inserției în Java? (tutorial)
- cum se aplică algoritmul Quicksort în loc în Java? (tutorial)
- cum se implementează algoritmul de sortare a bulelor în Java? (tutorial)
- diferența dintre comparație și algoritmul de sortare bazat pe non-comparație? (răspuns)
- cum se aplică sortarea Cupei în Java? (tutorial)
- cum se implementează algoritmul Quicksort fără recursivitate? (tutorial)
- cum se efectuează un algoritm de căutare binar în Java? (tutorial)
- cum să găsiți toate perechile dintr-o matrice a cărei sumă este egală cu K (soluție)
- cum să eliminați duplicatele dintr-o matrice în Java? (soluție)
- cum să găsiți cel mai semnificativ și cel mai mic număr dintr-o matrice fără sortare? (soluție)
- cum să găsiți duplicate dintr-o matrice nesortată în Java? (soluție)
- cum să găsiți un număr lipsă într-o matrice sortată? (soluție)
- cum să găsiți o valoare lipsă dintr-o matrice care conține 1 până la 100? (soluție)
- 50+ probleme de structură și algoritmi de date din interviuri (întrebări)
- cursurile mele preferate gratuite pentru a învăța structura de date în profunzime (FreeCodeCamp)
- cum să eliminați un element dintr-o matrice în Java? (soluție)
- cum se verifică dacă o matrice conține o anumită valoare? (soluție)
- 10 structura de date gratuite și cursuri algoritm pentru programatori (cursuri)
- 100 + structura de date probleme de codificare de la interviuri (întrebări)
Vă mulțumim pentru citirea acestui articol. Dacă vă place acest articol, vă rugăm să îl împărtășiți cu prietenii și colegii. Dacă aveți întrebări sau feedback-ul, atunci vă rugăm să picătură o notă.
P. S.-Dacă sunteți în căutarea unor cursuri gratuite de algoritmi pentru a vă îmbunătăți înțelegerea structurii și algoritmilor de date, atunci ar trebui să verificați și cursul de structuri de date ușor de avansat pe Udemy. Este scris de un inginer software Google și expert în algoritmi și este complet gratuit.