Přihlášen : Host (Guest)  
SupraRO Forum -> Server -> Off Topic

Reply to this topic

   Logická otázka za 10 Gold Coinu [Vyřešeno], Vyřešeno & Ukončeno
LuRy
   Napsáno: Dec 6 11, 00:38:21 AM Post: #1


Colonel
Group Icon

Skupina: Administrator
Příspěvky: 146
Žádný člen.: N/A
Připojil(a): 14-Oct 11
Zdárek, řeším jedne problém a nemůžu přijít na řešení, proto se obracím na vás jeslti vás něco napadne a za použitelnou odpověd která tento problém vyřeší i v praxi dám odměnu a to 5 gold coinu ve hře.

mam databazi treba
CODE

1 0
2 1
3 1
4 2
5 4
6 3
7 1

to prvni je ID uzivatele a to druhy pod koho patri (id 2 patri pod 1)

a ja potrebuju nejakym stylem vypsat napriklad pro 1 uzivatele celej strom ale nejak univerzalne abych nemusel delat pro kazdy id novej cyklus

vystup by mel bejt (je to tzv. pyramidovy system)
PRE
 
1. 2. 3. 4. - hloubka

1
2
4
5
3
6
7


takhle bych to udelal tak ze si nactu vsechny co maj pod koho patri 1 a ke kazdymu bych pro kazdyho dalsiho delal novej cyklus takze pokud by treba pro ziskani ID 5tje hloubka 4 (takze 4 cykly zbytecny).. navic to muze bejt promenlivy takze ja predem nevim kolik jich tam bude.

Otazka tedy zni jak to vyresit tak aby se to dalo pouzit univerzalne pro jakoukoliv hloubku, za pouziti aspon zakladnich predstav o programovani (To co je a neni mozne).



--------------------
_________________________________
Skype: luk.rys
ICQ: 254055480
Offline
top QuotePost
LuRy
Napsáno: Dec 7 11, 02:58:22 AM Post: #2


Colonel
Group Icon

Skupina: Administrator
Příspěvky: 146
Žádný člen.: N/A
Připojil(a): 14-Oct 11
Zvednul sem sazbu odmeny, zkousel se nekdo nad tim zamyslet? :D



--------------------
_________________________________
Skype: luk.rys
ICQ: 254055480
Offline
top QuotePost
LuRy
Napsáno: Dec 8 11, 05:46:49 AM Post: #3


Colonel
Group Icon

Skupina: Administrator
Příspěvky: 146
Žádný člen.: N/A
Připojil(a): 14-Oct 11
QUOTE (LuRy @ Dec 7 11, 02:58:22 AM)

Zvednul sem sazbu odmeny, zkousel se nekdo nad tim zamyslet? :D


Resolved :)

Tak uz jsem ten neresitelny problem vyresil stravil sem nad tim asi 3 hodinky nakopnul me jeden prispevek co sem nasel na netu a uvedomil jsem si ze existuje neco jako rekurzivni funkce (funkce za svyho behu vola sama sebe) takze mam pocit vytezstvi!:D

Jen pro ukazku :)
PRE
 
function aa($data,$refid,$aa=0,&$ret=""){
$aa++; //Hloubka dotazu

foreach ($data as $key=>$value) { //Pro kazdy radek z db
$a = explode(";",$value); //Rozparsujeme si csv db podle ;
$b = str_replace(array(" ","\n","\r",'"'),"",$a); //Odstranime nezadouci znaky
if ($b[1] == $refid){ //Vyberem pouze chteny radek ($b[0] - ID, $b[1] - ID Referenta)
for ($ab;$ab<$aa ;$ab++ ) $mezera .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; //Nejake rozliseni podle hloubky
$ret .= "<
/>".$mezera.$b[0].";"; //Razeni pro vystup
aa($data,$b[0],$aa,&$ret); //Pro rekurzivni prohledani cele hloubky
}
}
unset($a); unset($b); //Vycistime trochu pamet od sracek
return $ret; //Vratime konecny vysledek
}




Takze otazku za odmenu uzaviram. Divim se ze nikdo ani nenapsal krom zefyra kterej si zjistoval podrobnosti :D



--------------------
_________________________________
Skype: luk.rys
ICQ: 254055480
Offline
top QuotePost
Montella
Napsáno: Dec 15 11, 01:12:33 AM Post: #4


Baby
Group Icon

Skupina: Member
Příspěvky: 2
Žádný člen.: N/A
Připojil(a): 15-Oct 11
omlouvám se, že jsem neodpověděl ale nekoukal jsem sem na forum. mozna by to chtelo trosku nastudovat stromové struktury, ze existuje neco jako vyska, root, leaf, bylo by to velmi vhodne az budes neco chtit delat se stromy

v 99%ti procentech pripadu se to totiz reseni rekurzivni funkci (prima / neprima rekurze) pripadne to muzes napsat iteracne ale musel by sis vytvorit explicitní stack (jakoby "simulovat" rekurzi) protože (jak sis už asi zjistil) rekurze právě se stackem funguje.


P.S.: Neznat rekurzi je ostuda
Offline
top QuotePost
LuRy
Napsáno: Dec 15 11, 23:48:42 PM Post: #5


Colonel
Group Icon

Skupina: Administrator
Příspěvky: 146
Žádný člen.: N/A
Připojil(a): 14-Oct 11
QUOTE (Montella @ Dec 15 11, 01:12:33 AM)

omlouvám se, že jsem neodpověděl ale nekoukal jsem sem na forum. mozna by to chtelo trosku nastudovat stromové struktury, ze existuje neco jako vyska, root, leaf, bylo by to velmi vhodne az budes neco chtit delat se stromy

v 99%ti procentech pripadu se to totiz reseni rekurzivni funkci (prima / neprima rekurze) pripadne to muzes napsat iteracne ale musel by sis vytvorit explicitní stack (jakoby "simulovat" rekurzi) protože (jak sis už asi zjistil) rekurze právě se stackem funguje.


P.S.: Neznat rekurzi je ostuda


Ja rekurzi znam pouzival sem ji uz v mnoha projektech jen mi to proste nedoslo :D porad sem koumal a delal navrhy v kodu i na papir jak to udelat cyklus=1 hloubka neslo mi na mysl to jak poznam predem hloubku neceho co neznam :D



--------------------
_________________________________
Skype: luk.rys
ICQ: 254055480
Offline
top QuotePost

Reply to this topic
[ Doba provádění skriptu: 0.102 ]   [ 4 SQL ]   [ GZIP Disable ]   [ Theme: Reinforced Morroc by LuRy & warot_306 ]
SGCP 4.6.4 Modified by LuRy © 2009 - 2017. All Rights Reserved.