Hogyan egyenletesen láthatóvá facsomópontok

  • algoritmusok
  • adatvizualizáció

Bármilyen tetszőleges fa testvér csomópontok vannak egymástól dinamikusan beállítási érték (ebben az esetben 20), valamint a szomszédos csomópont (ebben az esetben 40). Abban a pillanatban, amikor a bal szélső ága van kialakítva, az illesztési módszer az úgynevezett A csomópont, amely továbbított bal felső és jobb felső különbség, és amely növelte a különbség köztük (ebben az esetben 20).
Ez történik az eljárás elemeinek elhelyezésére -

1. A hurok nyúlik ki a bal felső a jobb felső és úgy időközönként (ebben az esetben hat üres cellákat, amelyek, mint azt korábban 20, vagyis az összeg 120);
2. összegét elosztjuk a kapott az előző lépésben a csomópontok száma plusz egy (120/3 = 40);
3. Ha ellenőrizni, hogy a jelenlegi csomópont (Kezdek balról jobbra és a jelenlegi csomópont az egyetlen, aki két gyermek) küldenek a bal node-testvér (ebben az esetben 80).
4. Most vonjuk 80-40 = 40, az érték azt a távolságot, amely én vagyok az aktuális csomópont van feszítve, hogy a megfelelő helyre.
5. Ha az érték (40) nagyobb, mint amelynél növelte a távolság a két végponti csomópont, ez az érték kisebb lesz. Ez a számítások szerint 40, de ez már nem engedélyezett, és ez az érték változik 20.
6. mozgassa a csomópont.

Ismételje meg az előző hat lépést a következő csomóponthoz -
1. kap 60
2. 60/2 = 30
3. 40
4. 30
5. 10
6.

Hogyan egyenletesen láthatóvá facsomópontok

Látod, hogy én átlagosan? Először is, kitalálni, hogy mit kell mozgatni, hogy a negyven, de mivel a negyven lépés, nem tudom (sérti a gyermekek jogait az aljára, akkor lehet közelebb, mint negyven), azt eltolódott a maxim lehetséges húsz. És akkor mozgok már tíz.
Például, ha az első feldolgozási csomópont nem volt gyerek, akkor a kép a következő lenne -

Hogyan egyenletesen láthatóvá facsomópontok

Csak abban az esetben, ha azt előbb csomópont, amely lehet mozgatni a „mennyi valami” (gyermek nélkül), majd azt, amit nem lehet tolódott „mennyit valamit”, akkor a második voltam megint eltolódott a legnagyobb, de ugyanakkor csinál algoritmus az elejétől (vagy inkább az utolsó ismert jó pont), de idővel, hogy helyettesítse a jobb felső áram.

Azt mutatják a kódot, de nem akarom, hogy nézz a hiányosságokat, és csak azt akarom, hogy megértsék a jelentését.

Itt van. De aztán futott be a következő probléma, és lehet, hogy csak egy.

Hogyan egyenletesen láthatóvá facsomópontok

A bemeneti adatok ugyanazok, de lerobban. Algoritmus, ahogy szerettem volna, nem jött be, és még jön, nem tudok.

Ez a csomópont
francia - az értéket, amely a jelenlegi csomópont kivesszük az előző | _ | -> | _ |
leftOffset - az értéket, amit a bal oldalra kerül. Az elején, ez nulla
rightOffset = az az érték, amelynél jobbra tolódik. És azt is, alapértelmezés szerint nulla.

Itt van. Csomópontok magukat, mint a közönséges csomópontok, ssydka hogy Parenti, amelyben ezek tárolják egy indexelt tömb. Vannak módszerek csomópontok az index, és így maga az index.

Ha van ötletetek, én is örömmel, a nagyon egyszerű egyetemes üresség a fejét.

Kapcsolódó cikkek