[ BorisMB @ 26.10.2011. 12:25 ] @
Pozdrav ...
Moram da napravim php skriptu koja ce da zeba takmicare. Takmicari se po meni jedino mogu unijeti preko binarne strukture ....
ovako izgleda primer
Code:


                          [1]   

             [1                        2]

      [1           3]            [2          4]
    
  [1    5]      [3    7]      [2    6]    [4     8]

[1,9] [5,13] [3,11] [7,15] [2,10] [6,14] [4,12] [8,15]

e sad kolko ja znam php nema pokazivace, alociranje memorije i pravo binarno drvo tako da sam ja odluci da napravim ovo preko niza
strukturna niza izgleda ovako

( [1] => Array (
info=> info
br=> 1 // koji je po redu unesen brojevi iz gornje tabe
l=>n // pokazuje kiji je njegov lijevi sin , n prestavlja kao nall ondonsno da je prazan
r=>n// pokazuje na njegovog desnog sina , n vrijedost prestavlja nall odnosno da je prazan
)
Glavni problem prestavlja nacin unosa u stablo kao sto vidite nije pravilan kao kod skolksog primera binarnog stabla ...
dakle novi takmicar koji se treba da zadovolji uslov otac->br + binarni stepen od novog elementa = redni broj novog elementa.
binarni stepen zavisi od dosadasnjeg broja unesenih elemenata i izgleda ovako
element <=2 stepen=1
element <=4 stepen=2
element <=8 stepen=4
elemrnt <=16 stepen=8
element <=32 stepen=16
.......
dakle ako otac nema lijevog sina i iako je njegov redni br + stepen novog takmicara jednak broju novog takmicara otac se dodadaje desni sin sto predstavlja novi novi clan a na mjesto lijevog sina silazin on.

na kraju dobijeno stablo treba da se odstampaju samo samo listovi odozgo na dolje ....

ja sam pravio da bude classa jer tako lakse upravljam sa nizom ali imao sam problema u rekurziji da mi ide u beskonacnu petlju .... to sam uspio da regulisem tako da mogu da unesem samo 20 takmicara na 21 bi isao u rupa ali ja sam zaustavio da tu ne ide.

trenutno sad imam najveci problem za stampanje lista ... ako ko ima slobodnog vremena molio bih za malu pomoc posto mi je ovo jako potrebno do sutra cetvrta vece.

Code:

Array
(
    [0] => 1
    [1] => Array
        (
            [info] => 0
            [br] => 1
            [r] => 4
            [l] => 3
        )

    [2] => Array
        (
            [info] => 0
            [br] => 2
            [r] => 6
            [l] => 5
        )

    [3] => Array
        (
            [info] => 0
            [br] => 1
            [r] => 8
            [l] => 7
        )

    [4] => Array
        (
            [info] => 0
            [br] => 3
            [r] => 12
            [l] => 11
        )

    [5] => Array
        (
            [info] => 0
            [br] => 2
            [r] => 10
            [l] => 9
        )

    [6] => Array
        (
            [info] => 0
            [br] => 4
            [r] => 14
            [l] => 13
        )

    [7] => Array
        (
            [info] => 0
            [br] => 1
            [r] => 16
            [l] => 15
        )

    [8] => Array
        (
            [info] => 0
            [br] => 5
            [r] => 24
            [l] => 23
        )

    [9] => Array
        (
            [info] => 0
            [br] => 2
            [r] => 18
            [l] => 17
        )

    [10] => Array
        (
            [info] => 0
            [br] => 6
            [r] => 26
            [l] => 25
        )

    [11] => Array
        (
            [info] => 0
            [br] => 3
            [r] => 20
            [l] => 19
        )

    [12] => Array
        (
            [info] => 0
            [br] => 7
            [r] => 28
            [l] => 27
        )

    [13] => Array
        (
            [info] => 0
            [br] => 4
            [r] => 22
            [l] => 21
        )

    [14] => Array
        (
            [info] => 0
            [br] => 8
            [r] => 30
            [l] => 29
        )

    [15] => Array
        (
            [info] => 0
            [br] => 1
            [r] => 32
            [l] => 31
        )

    [16] => Array
        (
            [info] => k 1
            [br] => 9
            [r] => n
            [l] => n
        )

    [17] => Array
        (
            [info] => 0
            [br] => 2
            [r] => 34
            [l] => 33
        )

    [18] => Array
        (
            [info] => k 2
            [br] => 10
            [r] => n
            [l] => n
        )

    [19] => Array
        (
            [info] => 0
            [br] => 3
            [r] => 36
            [l] => 35
        )

    [20] => Array
        (
            [info] => k 3
            [br] => 11
            [r] => n
            [l] => n
        )

    [21] => Array
        (
            [info] => 0
            [br] => 4
            [r] => 38
            [l] => 37
        )

    [22] => Array
        (
            [info] => k 4
            [br] => 12
            [r] => n
            [l] => n
        )

    [23] => Array
        (
            [info] => T 5
            [br] => 5
            [r] => n
            [l] => n
        )

    [24] => Array
        (
            [info] => k 5
            [br] => 13
            [r] => n
            [l] => n
        )

    [25] => Array
        (
            [info] => T 6
            [br] => 6
            [r] => n
            [l] => n
        )

    [26] => Array
        (
            [info] => k 6
            [br] => 14
            [r] => n
            [l] => n
        )

    [27] => Array
        (
            [info] => T 7
            [br] => 7
            [r] => n
            [l] => n
        )

    [28] => Array
        (
            [info] => k 7
            [br] => 15
            [r] => n
            [l] => n
        )

    [29] => Array
        (
            [info] => T 8
            [br] => 8
            [r] => n
            [l] => n
        )

    [30] => Array
        (
            [info] =>  1
            [br] => 16
            [r] => n
            [l] => n
        )

    [31] => Array
        (
            [info] => T 1
            [br] => 1
            [r] => n
            [l] => n
        )

    [32] => Array
        (
            [info] =>  2
            [br] => 17
            [r] => n
            [l] => n
        )

    [33] => Array
        (
            [info] => T 2
            [br] => 2
            [r] => n
            [l] => n
        )

    [34] => Array
        (
            [info] =>  3
            [br] => 18
            [r] => n
            [l] => n
        )

    [35] => Array
        (
            [info] => T 3
            [br] => 3
            [r] => n
            [l] => n
        )

    [36] => Array
        (
            [info] =>  4
            [br] => 19
            [r] => n
            [l] => n
        )

    [37] => Array
        (
            [info] => T 4
            [br] => 4
            [r] => n
            [l] => n
        )

    [38] => Array
        (
            [info] =>  5
            [br] => 20
            [r] => n
            [l] => n
        )

)

 



POtrebna pomoc predlog sugestija ... bilo sta jako mi je potrebno i hitno da ovo zavrsim ...
Hvala svima unaprijed