Cum să vizualizați uniform nodurile copacilor

  • algoritmi
  • Vizualizarea datelor

Orice noduri copac frate arbitrare sunt distanțate prin valoare setarea dinamică (în acest caz 20), precum și nodurile învecinate (în acest caz 40). În momentul în care se formează cea mai din stânga ramură, metoda de aliniere se numește un nod care a transmis de sus-stânga, iar diferența din dreapta sus și care a mărit decalajul dintre ele (în acest caz 20).






Iată ce se întâmplă în metoda de aranjare a nodurilor -

1. În ciclu, trecem de la stânga sus la dreapta sus și luăm în considerare decalajele (în acest caz, acestea sunt șase celule goale, care, după cum am menționat anterior, au fost 20, adică suma de 120);
2. Împărțim suma primită în pasul anterior cu numărul de noduri plus un (120/3 = 40);
3. Am verificat cât de mult este nodul curent (pornesc de la stânga la dreapta și deci nodul curent este cel cu doi copii) este eliminat din fratele nodului stâng (în acest caz este 80).
4. Acum scad din 80 - 40 = 40, această valoare este distanța până la care voi mișca nodul curent să fie în locul potrivit.
5. Dacă această valoare (40) este mai mare decât cea pentru care distanța dintre cele două noduri extreme a crescut, această valoare devine mai mică. Asta este, calculat ca 40, dar este mai mult decât este permis și, prin urmare, valoarea se modifică cu 20.
6. Mutarea nodului.

Repet sasele etape anterioare pentru urmatorul nod -
1. Am 60 de ani
2. 60/2 = 30
3. 40
4. 30
5. 10
6.

Cum să vizualizați uniform nodurile copacilor






Vedeți modul în care am obținut media? În primul rând, dau seama de ce ai nevoie pentru a trece la patruzeci de ani, dar din moment ce patruzeci și mișcare, eu nu pot (încalcă drepturile copiilor la partea de jos, ei vor fi mai aproape de patruzeci), m-am mutat la maxima posibila este de douăzeci de ani. Și apoi mă schimb cu zece.
De exemplu, dacă primul nod procesat nu avea copii, atunci imaginea ar fi următoarea -

Cum să vizualizați uniform nodurile copacilor

În cazul în care pentru prima oară am un nod care poate fi mutat "cumva" (fără copii) și după aceea care nu poate fi mutat "cumva", atunci mișc din nou cel de-al doilea la maximum, dar în același timp execut algoritmul de la început (mai exact, din ultimul punct de succes), dar pentru o vreme am înlocuit partea de sus-dreapta cu cea actuală.

Aș arăta codul, dar nu vreau să te uiți la neajunsurile lui, dar doar vrei să înțelegi semnificația.

Aici. " Dar apoi am intrat în următoarea problemă și poate e doar unul dintre ei.

Cum să vizualizați uniform nodurile copacilor

Intrarea este aceeași, dar totul se rupe. Algoritmul, așa cum am vrut, nu a funcționat și nu mă pot gândi la nimic.

Care este nodul
indent - valoarea prin care nodul curent este eliminat din precedentul | _ | -> | _ |
leftOffset este valoarea la care mă deplasez spre stânga. La început este zero
rightOffset = aceasta este valoarea la care mă deplasez spre dreapta. Și, de asemenea, implicit la zero.

Aici. " Nodurile înseși, ca nodurile obișnuite, se referă la părinte, în care sunt stocate într-o matrice indexată. Există metode pentru obținerea nodului prin index și obținerea indexului în sine.

Dacă există idei, voi fi bucuros să ascult, cel mai simplu este goliciunea universală din capul meu.







Articole similare

Trimiteți-le prietenilor: