Portál AbcLinuxu, 18. července 2025 12:46


Dotaz: Tree Menu v PHP

28.5.2014 18:49 Karlos
Tree Menu v PHP
Přečteno: 274×
Odpovědět | Admin
Ahoj, tady jsem našel odkaz na NestedSetModel. Poradí prosím někdo, jak se dopočítám těch čísel pro sloupce Left a Right? Díky
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.5.2014 19:09 Sten
Rozbalit Rozbalit vše Re: Tree Menu v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rekurzí. Při vstupu si poznamenáte left a při výstupu right:
def step(node, number):
    node.left = number
    number += 1
    for n in node.children:
        number = step(n, number) + 1
    node.right = number
    return number + 1

step(root, 1)
28.5.2014 19:11 Sten
Rozbalit Rozbalit vše Re: Tree Menu v PHP
Pardon, je tam dvakrát + 1 při návratu. Má tam být return number (bez + 1).
28.5.2014 20:03 Karlos
Rozbalit Rozbalit vše Re: Tree Menu v PHP
Děkuji moc, v php řešení prosím nemáte?
29.5.2014 08:20 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Tree Menu v PHP
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
Josef Kufner avatar 29.5.2014 11:54 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Tree Menu v PHP
V tom článku chybí metody pro vkládání do stromu. Jakmile je strom jednou očíslován, tak stačí při vložení jeden vcelku jednoduchý update na posunutí všech left a right čísel ve zbytku stromu. Při odstranění pak není nutno přečíslovávat vůbec, pokud nevadí mezery, nebo lze použít téměř stejný update pro posun zpět.
Hello world ! Segmentation fault (core dumped)
29.5.2014 13:59 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Tree Menu v PHP
stačí se podívat do komentářů a je tam odkaz na na Traverzování kolem stromu prakticky kde jsou další metody...
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.