Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Nejasnoća u zadatku iz prve zadaće
WWW:
Idite na Prethodno  1, 2, 3  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 20:56 uto, 26. 11. 2013    Naslov: Citirajte i odgovorite

[quote="frutabella"]Pocela sam pa sam skuzila da nije bas jednostavno,...[/quote]

Ma, jednostavno je, samo ne smijes raditi kao da su nizovi (klasicni ili bubble sort), nego ovako nesto:
1. nadji najmanji element,
2. ubaci ga na pocetak nove liste i izbaci iz stare,
3. ponavljaj dok ne ispraznis staru listu.
frutabella (napisa):
Pocela sam pa sam skuzila da nije bas jednostavno,...


Ma, jednostavno je, samo ne smijes raditi kao da su nizovi (klasicni ili bubble sort), nego ovako nesto:
1. nadji najmanji element,
2. ubaci ga na pocetak nove liste i izbaci iz stare,
3. ponavljaj dok ne ispraznis staru listu.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 22:20 uto, 26. 11. 2013    Naslov: Citirajte i odgovorite

Pozdrav!

Imam par pitanja. Moj zadatak je implementirati dvostrani red DQueue pomoću vezane liste, a vezanu listu pomoću kursora. Elementtype je int.

1. Smijemo li koristiti globalne varijable?

2. Pošto se radi o dvostrukom redu trebaju mi funkcije:
DQuMakeNull, DQuEmpty, DQuFront_poc, DQuFront_kraj, DQuEnqueue_poc, DQuEnqueue_kraj, DQuDequeue_poc i DQuDequeue_kraj.

S obzirom da je red zapravo lista, moram li ja te funkcije (DQuMakeNull, ...) napisati uz pomoć funkcija od a.t.p. list (tj. da koristim funkcije LiEnd, LiInsert, LiDelete, LiFirst, LiRetrieve, ...) ili smijem samo napisati gore navedene funkcije same po sebi tj. da se one ne služe funkcijama od a.t.p. list?

3. Na vježbama smo radili implementaciju vezane liste pomoću kursora pa sam na temelju toga definirao svoj red ovako:
[code:1]typedef struct
{
elementtype element;
position next;

} DQueue[MAXLENGTH];[/code:1]

No s obzirom da sad radimo s poljem, onda nijedna funkcija zapravo ne treba primati pointer jer se polje ponaša kao pointer tj. za obični red smo imali npr.
[code:1]int QuEmpty(Queue Q)
void QuMakeNull(Queue *Qp)[/code:1]

no kad je u pitanju polje oboje bi mogle biti:
[code:1]int QuEmpty(Queue Q)
void QuMakeNull(Queue Q)[/code:1]

pa me zanima, moram li deklarirati dodatan tip tako da se argumenti poklapaju kao u originalnom redu tj.
[code:1]int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue *Qp)
[/code:1]

ili može
[code:1]int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue Q)
[/code:1]

?

4. Kod prezentiranja programa, smije li kod sadržavati kratke komentare ili nosimo samo čisti kod?
Pozdrav!

Imam par pitanja. Moj zadatak je implementirati dvostrani red DQueue pomoću vezane liste, a vezanu listu pomoću kursora. Elementtype je int.

1. Smijemo li koristiti globalne varijable?

2. Pošto se radi o dvostrukom redu trebaju mi funkcije:
DQuMakeNull, DQuEmpty, DQuFront_poc, DQuFront_kraj, DQuEnqueue_poc, DQuEnqueue_kraj, DQuDequeue_poc i DQuDequeue_kraj.

S obzirom da je red zapravo lista, moram li ja te funkcije (DQuMakeNull, ...) napisati uz pomoć funkcija od a.t.p. list (tj. da koristim funkcije LiEnd, LiInsert, LiDelete, LiFirst, LiRetrieve, ...) ili smijem samo napisati gore navedene funkcije same po sebi tj. da se one ne služe funkcijama od a.t.p. list?

3. Na vježbama smo radili implementaciju vezane liste pomoću kursora pa sam na temelju toga definirao svoj red ovako:
Kod:
typedef struct
{
    elementtype element;
    position next;
   
} DQueue[MAXLENGTH];


No s obzirom da sad radimo s poljem, onda nijedna funkcija zapravo ne treba primati pointer jer se polje ponaša kao pointer tj. za obični red smo imali npr.
Kod:
int QuEmpty(Queue Q)
void QuMakeNull(Queue *Qp)


no kad je u pitanju polje oboje bi mogle biti:
Kod:
int QuEmpty(Queue Q)
void QuMakeNull(Queue Q)


pa me zanima, moram li deklarirati dodatan tip tako da se argumenti poklapaju kao u originalnom redu tj.
Kod:
int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue *Qp)


ili može
Kod:
int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue Q)


?

4. Kod prezentiranja programa, smije li kod sadržavati kratke komentare ili nosimo samo čisti kod?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
frutabella
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 10. 2010. (16:35:36)
Postovi: (24E)16
Sarma = la pohva - posuda
-5 = 42 - 47

PostPostano: 22:37 uto, 26. 11. 2013    Naslov: Citirajte i odgovorite

Trebam zbrojiti 2 polinoma (L1+L2), funkcija LiRetriveE vraca eksponent, a LiRetriveC vraca koeficijent.
Sve ostale funkcije dobro rade (u LiInsert ubacujem strukturu).

[code:1]


typedef struct _STRUKT{

int c;
int e;

}STRUKT;



List sum(List L1, List L2)
{
position poz, p, t;
int co=0;
List L3;
STRUKT x;

poz=LiMakeNull(&L3);


for(p=LiFirst(L1); p!=LiEnd(L1); p=LiNext(p,L1))
{
for(t=LiFirst(L2); t!=LiEnd(L2); t=LiNext(t, L2))
{
if(LiRetriveE(p,L1)>LiRetriveE(t, L2))
{
x.c=LiRetriveC(p,L1);
x.e=LiRetriveE(p,L1);
LiInsert(x,poz,&L3);
poz=LiNext(poz, L3);
break;

}

else
{
x.c=LiRetriveC(t,L2);
x.e=LiRetriveE(t,L2);
LiInsert(x,poz,&L3);
poz=LiNext(poz, L3);
break;
}

if(LiRetriveE(p,L1)==LiRetriveE(t, L2)) // ??????
{
co+=LiRetriveC(p,L1)+LiRetriveC(t, L2);
x.c=co;
x.e=LiRetriveE(p, L1);
LiInsert(x, poz, &L3);
poz=LiNext(poz, L3);
co=0;
break;
}

}

if(t==LiEnd(L2)) break;
}


while(p!=LiEnd(L1))
{
x.c=LiRetriveC(p,L1);
x.e=LiRetriveE(p,L1);
LiInsert(x, poz, &L3);
poz=LiNext(poz, L3);
p=LiNext(p, L2);
}


while(t!=LiEnd(L2))
{
x.c=LiRetriveC(t,L2);
x.e=LiRetriveE(t,L2);
LiInsert(x, poz, &L3);
poz=LiNext(poz, L3);
t=LiNext(t, L2);
}

return L3;

}
[/code:1]

Ne znam u cemu je problem kad je potrebno zbrojiti koeficijente, cini mi se da sam ok napisala, ali u ispisu (pomocu funkcije ispisPolinom) mi ne zbroji koefcijente uz iste potencije.


[code:1]
void ispisPolinoma (position p, List L3)
{

while(p!=LiEnd(L3))
{
if(LiRetriveE(p,L3)!=0)
{
printf("%dx^%d", LiRetriveC(p,L3), LiRetriveE(p,L3));
p=LiNext(p,L3);
}

else
{
printf("%d", LiRetriveC(p,L3));
p=LiNext(p,L3);
}

if(p!=LiEnd(L3)) printf("+");
}
}
[/code:1]

skuzila:
u drugoj for petlji, poslije prvog if ne ide else, nego uvjet
if(LiRetriveE(p,L1)<LiRetriveE(t, L2)),

(zbog elsa nisam dospijela do if gdje izjednacavamo eksponente)
Trebam zbrojiti 2 polinoma (L1+L2), funkcija LiRetriveE vraca eksponent, a LiRetriveC vraca koeficijent.
Sve ostale funkcije dobro rade (u LiInsert ubacujem strukturu).

Kod:



typedef struct _STRUKT{

      int c;
      int e;

}STRUKT;



List sum(List L1, List L2)
       {
            position poz, p, t;
            int co=0;
            List L3;
            STRUKT x;

            poz=LiMakeNull(&L3);


            for(p=LiFirst(L1); p!=LiEnd(L1); p=LiNext(p,L1))
            {
                for(t=LiFirst(L2); t!=LiEnd(L2); t=LiNext(t, L2))
                {
                    if(LiRetriveE(p,L1)>LiRetriveE(t, L2))
                    {
                        x.c=LiRetriveC(p,L1);
                        x.e=LiRetriveE(p,L1);
                        LiInsert(x,poz,&L3);
                        poz=LiNext(poz, L3);
                        break;

                    }

                    else
                    {
                        x.c=LiRetriveC(t,L2);
                        x.e=LiRetriveE(t,L2);
                        LiInsert(x,poz,&L3);
                        poz=LiNext(poz, L3);
                        break;
                    }

                    if(LiRetriveE(p,L1)==LiRetriveE(t, L2))                 // ??????
                    {
                        co+=LiRetriveC(p,L1)+LiRetriveC(t, L2);
                        x.c=co;
                        x.e=LiRetriveE(p, L1);
                        LiInsert(x, poz, &L3);
                        poz=LiNext(poz, L3);
                        co=0;
                        break;
                    }

                }

                 if(t==LiEnd(L2)) break;
            }


               while(p!=LiEnd(L1))
               {
                   x.c=LiRetriveC(p,L1);
                   x.e=LiRetriveE(p,L1);
                   LiInsert(x, poz, &L3);
                   poz=LiNext(poz, L3);
                   p=LiNext(p, L2);
               }


               while(t!=LiEnd(L2))
               {
                   x.c=LiRetriveC(t,L2);
                   x.e=LiRetriveE(t,L2);
                   LiInsert(x, poz, &L3);
                   poz=LiNext(poz, L3);
                   t=LiNext(t, L2);
               }

            return L3;

       }


Ne znam u cemu je problem kad je potrebno zbrojiti koeficijente, cini mi se da sam ok napisala, ali u ispisu (pomocu funkcije ispisPolinom) mi ne zbroji koefcijente uz iste potencije.


Kod:

 void ispisPolinoma (position p, List L3)
      {

              while(p!=LiEnd(L3))
          {
             if(LiRetriveE(p,L3)!=0)
             {
               printf("%dx^%d", LiRetriveC(p,L3), LiRetriveE(p,L3));
               p=LiNext(p,L3);
             }

             else
             {
              printf("%d", LiRetriveC(p,L3));
              p=LiNext(p,L3);
             }

               if(p!=LiEnd(L3)) printf("+");
          }
      }


skuzila:
u drugoj for petlji, poslije prvog if ne ide else, nego uvjet
if(LiRetriveE(p,L1)<LiRetriveE(t, L2)),

(zbog elsa nisam dospijela do if gdje izjednacavamo eksponente)




Zadnja promjena: frutabella; 0:31 sri, 27. 11. 2013; ukupno mijenjano 2 put/a.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kslaven
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2010. (18:07:06)
Postovi: (52)16
Spol: muško
Sarma = la pohva - posuda
33 = 36 - 3

PostPostano: 22:38 uto, 26. 11. 2013    Naslov: Citirajte i odgovorite

[quote="Shirohige"]Pozdrav!

Imam par pitanja. Moj zadatak je implementirati dvostrani red DQueue pomoću vezane liste, a vezanu listu pomoću kursora. Elementtype je int.

1. Smijemo li koristiti globalne varijable?

2. Pošto se radi o dvostrukom redu trebaju mi funkcije:
DQuMakeNull, DQuEmpty, DQuFront_poc, DQuFront_kraj, DQuEnqueue_poc, DQuEnqueue_kraj, DQuDequeue_poc i DQuDequeue_kraj.

S obzirom da je red zapravo lista, moram li ja te funkcije (DQuMakeNull, ...) napisati uz pomoć funkcija od a.t.p. list (tj. da koristim funkcije LiEnd, LiInsert, LiDelete, LiFirst, LiRetrieve, ...) ili smijem samo napisati gore navedene funkcije same po sebi tj. da se one ne služe funkcijama od a.t.p. list?

3. Na vježbama smo radili implementaciju vezane liste pomoću kursora pa sam na temelju toga definirao svoj red ovako:
[code:1]typedef struct
{
elementtype element;
position next;

} DQueue[MAXLENGTH];[/code:1]

No s obzirom da sad radimo s poljem, onda nijedna funkcija zapravo ne treba primati pointer jer se polje ponaša kao pointer tj. za obični red smo imali npr.
[code:1]int QuEmpty(Queue Q)
void QuMakeNull(Queue *Qp)[/code:1]

no kad je u pitanju polje oboje bi mogle biti:
[code:1]int QuEmpty(Queue Q)
void QuMakeNull(Queue Q)[/code:1]

pa me zanima, moram li deklarirati dodatan tip tako da se argumenti poklapaju kao u originalnom redu tj.
[code:1]int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue *Qp)
[/code:1]

ili može
[code:1]int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue Q)
[/code:1]

?

4. Kod prezentiranja programa, smije li kod sadržavati kratke komentare ili nosimo samo čisti kod?[/quote]

1. Da.
2. Nemojte koristiti funkcije iz ATP-a List.
3. Bilo bi lijepo "da se argumenti poklapaju kao u originalnom redu".
4. Slobodno komentirajte.
Shirohige (napisa):
Pozdrav!

Imam par pitanja. Moj zadatak je implementirati dvostrani red DQueue pomoću vezane liste, a vezanu listu pomoću kursora. Elementtype je int.

1. Smijemo li koristiti globalne varijable?

2. Pošto se radi o dvostrukom redu trebaju mi funkcije:
DQuMakeNull, DQuEmpty, DQuFront_poc, DQuFront_kraj, DQuEnqueue_poc, DQuEnqueue_kraj, DQuDequeue_poc i DQuDequeue_kraj.

S obzirom da je red zapravo lista, moram li ja te funkcije (DQuMakeNull, ...) napisati uz pomoć funkcija od a.t.p. list (tj. da koristim funkcije LiEnd, LiInsert, LiDelete, LiFirst, LiRetrieve, ...) ili smijem samo napisati gore navedene funkcije same po sebi tj. da se one ne služe funkcijama od a.t.p. list?

3. Na vježbama smo radili implementaciju vezane liste pomoću kursora pa sam na temelju toga definirao svoj red ovako:
Kod:
typedef struct
{
    elementtype element;
    position next;
   
} DQueue[MAXLENGTH];


No s obzirom da sad radimo s poljem, onda nijedna funkcija zapravo ne treba primati pointer jer se polje ponaša kao pointer tj. za obični red smo imali npr.
Kod:
int QuEmpty(Queue Q)
void QuMakeNull(Queue *Qp)


no kad je u pitanju polje oboje bi mogle biti:
Kod:
int QuEmpty(Queue Q)
void QuMakeNull(Queue Q)


pa me zanima, moram li deklarirati dodatan tip tako da se argumenti poklapaju kao u originalnom redu tj.
Kod:
int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue *Qp)


ili može
Kod:
int DQuEmpty(DQueue Q)
void DQuMakeNull(DQueue Q)


?

4. Kod prezentiranja programa, smije li kod sadržavati kratke komentare ili nosimo samo čisti kod?


1. Da.
2. Nemojte koristiti funkcije iz ATP-a List.
3. Bilo bi lijepo "da se argumenti poklapaju kao u originalnom redu".
4. Slobodno komentirajte.


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 2:26 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="kslaven"]

1. Da.
2. Nemojte koristiti funkcije iz ATP-a List.
3. Bilo bi lijepo "da se argumenti poklapaju kao u originalnom redu".
4. Slobodno komentirajte.[/quote]

Ok, hvala! Zadnje pitanje (nadam se): Smijemo li koristiti <string.h> (pošto moram ugraditi naredbe "IZBACI POCETAK", "UBACI POCETAK n" i sl. )?
kslaven (napisa):


1. Da.
2. Nemojte koristiti funkcije iz ATP-a List.
3. Bilo bi lijepo "da se argumenti poklapaju kao u originalnom redu".
4. Slobodno komentirajte.


Ok, hvala! Zadnje pitanje (nadam se): Smijemo li koristiti <string.h> (pošto moram ugraditi naredbe "IZBACI POCETAK", "UBACI POCETAK n" i sl. )?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
kslaven
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2010. (18:07:06)
Postovi: (52)16
Spol: muško
Sarma = la pohva - posuda
33 = 36 - 3

PostPostano: 2:49 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="Shirohige"]
Ok, hvala! Zadnje pitanje (nadam se): Smijemo li koristiti <string.h> (pošto moram ugraditi naredbe "IZBACI POCETAK", "UBACI POCETAK n" i sl. )?[/quote]

Da.
Shirohige (napisa):

Ok, hvala! Zadnje pitanje (nadam se): Smijemo li koristiti <string.h> (pošto moram ugraditi naredbe "IZBACI POCETAK", "UBACI POCETAK n" i sl. )?


Da.


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
piccola
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2009. (15:39:50)
Postovi: (D7)16
Sarma = la pohva - posuda
= 10 - 8

PostPostano: 4:24 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

Zadatak glasi:

Implementirajte atp Queue pomoću cirkularnog polja. Nadalje napravite algoritam za pronalaženje skupa svih čvorova neusmjerenog grafa do kojih se može doći iz vrha 1. Neusmjereni graf implementirajte kao matricu nula i jedinica.

Zanima me upisujemo li čitavu matricu u red pa iz reda čitamo podatke ili treba raditi s matricama i tek konačni rezultat upisati u red?
Zadatak glasi:

Implementirajte atp Queue pomoću cirkularnog polja. Nadalje napravite algoritam za pronalaženje skupa svih čvorova neusmjerenog grafa do kojih se može doći iz vrha 1. Neusmjereni graf implementirajte kao matricu nula i jedinica.

Zanima me upisujemo li čitavu matricu u red pa iz reda čitamo podatke ili treba raditi s matricama i tek konačni rezultat upisati u red?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
kslaven
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2010. (18:07:06)
Postovi: (52)16
Spol: muško
Sarma = la pohva - posuda
33 = 36 - 3

PostPostano: 11:24 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="piccola"]Zadatak glasi:

Implementirajte atp Queue pomoću cirkularnog polja. Nadalje napravite algoritam za pronalaženje skupa svih čvorova neusmjerenog grafa do kojih se može doći iz vrha 1. Neusmjereni graf implementirajte kao matricu nula i jedinica.

Zanima me upisujemo li čitavu matricu u red pa iz reda čitamo podatke ili treba raditi s matricama i tek konačni rezultat upisati u red?[/quote]

Ne upisujete matricu u red. Rješavali smo sličan zadatak na vježbama, samo s (običnim) redom i usmjerenim grafom. Algoritam je isti kao u tom zadatku.
piccola (napisa):
Zadatak glasi:

Implementirajte atp Queue pomoću cirkularnog polja. Nadalje napravite algoritam za pronalaženje skupa svih čvorova neusmjerenog grafa do kojih se može doći iz vrha 1. Neusmjereni graf implementirajte kao matricu nula i jedinica.

Zanima me upisujemo li čitavu matricu u red pa iz reda čitamo podatke ili treba raditi s matricama i tek konačni rezultat upisati u red?


Ne upisujete matricu u red. Rješavali smo sličan zadatak na vježbama, samo s (običnim) redom i usmjerenim grafom. Algoritam je isti kao u tom zadatku.


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
white_butterfly
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 10. 2011. (17:44:57)
Postovi: (40)16
Spol: žensko
Sarma = la pohva - posuda
-1 = 1 - 2

PostPostano: 12:33 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

Kad učitavamo string (logički izraz u prefix obliku), da li ga učitavamo s lijeva na desno ili s desna na lijevo ili je svejedno?
Kad učitavamo string (logički izraz u prefix obliku), da li ga učitavamo s lijeva na desno ili s desna na lijevo ili je svejedno?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
kslaven
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2010. (18:07:06)
Postovi: (52)16
Spol: muško
Sarma = la pohva - posuda
33 = 36 - 3

PostPostano: 13:00 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="white_butterfly"]Kad učitavamo string (logički izraz u prefix obliku), da li ga učitavamo s lijeva na desno ili s desna na lijevo ili je svejedno?[/quote]

svejedno
white_butterfly (napisa):
Kad učitavamo string (logički izraz u prefix obliku), da li ga učitavamo s lijeva na desno ili s desna na lijevo ili je svejedno?


svejedno


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
piccola
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2009. (15:39:50)
Postovi: (D7)16
Sarma = la pohva - posuda
= 10 - 8

PostPostano: 14:15 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

Hvala, zato sam i pitala. Samo mi je bilo čudno kako se malo koristi red...
Hvala, zato sam i pitala. Samo mi je bilo čudno kako se malo koristi red...


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shirohige
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 11. 2012. (20:19:56)
Postovi: (ED)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 18:14 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="kslaven"]

Da.[/quote]

Hvala, sad kad sam gotov sam se sjetio još par stvari :? :

1. Ispis reda: ako je red prazan, treba li samo ispisati poruku da je red prazan ili treba i izaći iz programa tj. treba li funkcija za ispis prekinuti program?

2. Sjetio sam se da smo vezanu listu uz pomoć kursora implementirali tako da u jedno veliko polje može ići više vezanih lista, mogu li ja pretpostaviti da će u ovo jedno polje ići samo jedan dvostruki red ili treba prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente?

(moj zadatak su samo funkcije ubaci/izbaci na kraju/početku, ali tek toliko da sam siguran)

3. Ako naredba u primjeru glasi "IZBACI", moram li ja provjeravati i za sve ostale mogućnosti (izbaci, Izbaci, izBaCi, ... ) ?
kslaven (napisa):


Da.


Hvala, sad kad sam gotov sam se sjetio još par stvari Confused :

1. Ispis reda: ako je red prazan, treba li samo ispisati poruku da je red prazan ili treba i izaći iz programa tj. treba li funkcija za ispis prekinuti program?

2. Sjetio sam se da smo vezanu listu uz pomoć kursora implementirali tako da u jedno veliko polje može ići više vezanih lista, mogu li ja pretpostaviti da će u ovo jedno polje ići samo jedan dvostruki red ili treba prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente?

(moj zadatak su samo funkcije ubaci/izbaci na kraju/početku, ali tek toliko da sam siguran)

3. Ako naredba u primjeru glasi "IZBACI", moram li ja provjeravati i za sve ostale mogućnosti (izbaci, Izbaci, izBaCi, ... ) ?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 20:02 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

Imam VELIKI problem.

Riješio sam zadaću, savršeno radi dok mu se ne sjeti da bi mogao puknuti.
I imam drugu verziju, koja ima samo 1 promjenu a to je da na 3 mjesta u implementaciji [b]BinaryTree-a pointerima[/b] poslije malloc-a ima if-ove da provjeri da nije greska u alokaciji - guess what - taj komad koda svaki put puca. LUDIM.
Ima netko ideju što može biti.

Evo ovako to izgleda u izvršavanju:

Pokrenem, radi savrseno:
http://www.zaslike.com/files/1c4d5n4e7jcsxq4370o.jpg

Ponovo pokrenem - isto.

Još jednom, ovo izbaci:
http://www.zaslike.com/files/wm8l5oswwyza4gh715rm.png


Kod je ovdje, ako nekoga zanima - sve je iskomentirano, a zadatak se tekstom nalazi između implementacije i rješenja:
http://pastebin.com/hJ62igiv

btw. ako ce znaciti, ponekad je radilo da iskopiram cijeli kod u novi prozor Code Blocksa i kompajliram pod novim imenom. Ne uvijek, ali onda bi najčešće radio na prvu. Ali i tako se znao rušiti.

Please help!


Frendu na Linuxu skroz radi:

[quote]ja sam inace na linuxu. i kompajlirah ZADACA GOTOVA i radi mi.
(...)
ZADACA GOTOVA.c: In function ‘main’:
ZADACA GOTOVA.c:261:6: warning: ‘T’ is used uninitialized in this function [-Wuninitialized]
i ovo mi javlja. za svaki slucaj ti govorim, znam da ne utjece na funkcionalnost ali eto[/quote]
vise puta je isprobao. :?: :?:

APDEJT: Ni njemu na Win7 na istom kompu ne radi nego na mahove. WHAT? O.o
Imam VELIKI problem.

Riješio sam zadaću, savršeno radi dok mu se ne sjeti da bi mogao puknuti.
I imam drugu verziju, koja ima samo 1 promjenu a to je da na 3 mjesta u implementaciji BinaryTree-a pointerima poslije malloc-a ima if-ove da provjeri da nije greska u alokaciji - guess what - taj komad koda svaki put puca. LUDIM.
Ima netko ideju što može biti.

Evo ovako to izgleda u izvršavanju:

Pokrenem, radi savrseno:
http://www.zaslike.com/files/1c4d5n4e7jcsxq4370o.jpg

Ponovo pokrenem - isto.

Još jednom, ovo izbaci:
http://www.zaslike.com/files/wm8l5oswwyza4gh715rm.png


Kod je ovdje, ako nekoga zanima - sve je iskomentirano, a zadatak se tekstom nalazi između implementacije i rješenja:
http://pastebin.com/hJ62igiv

btw. ako ce znaciti, ponekad je radilo da iskopiram cijeli kod u novi prozor Code Blocksa i kompajliram pod novim imenom. Ne uvijek, ali onda bi najčešće radio na prvu. Ali i tako se znao rušiti.

Please help!


Frendu na Linuxu skroz radi:

Citat:
ja sam inace na linuxu. i kompajlirah ZADACA GOTOVA i radi mi.
(...)
ZADACA GOTOVA.c: In function ‘main’:
ZADACA GOTOVA.c:261:6: warning: ‘T’ is used uninitialized in this function [-Wuninitialized]
i ovo mi javlja. za svaki slucaj ti govorim, znam da ne utjece na funkcionalnost ali eto

vise puta je isprobao. Question Question

APDEJT: Ni njemu na Win7 na istom kompu ne radi nego na mahove. WHAT? O.o


Zadnja promjena: Silenoz; 20:39 sri, 27. 11. 2013; ukupno mijenjano 2 put/a.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kslaven
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2010. (18:07:06)
Postovi: (52)16
Spol: muško
Sarma = la pohva - posuda
33 = 36 - 3

PostPostano: 20:17 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="Shirohige"][quote="kslaven"]

Da.[/quote]

Hvala, sad kad sam gotov sam se sjetio još par stvari :? :

1. Ispis reda: ako je red prazan, treba li samo ispisati poruku da je red prazan ili treba i izaći iz programa tj. treba li funkcija za ispis prekinuti program?

2. Sjetio sam se da smo vezanu listu uz pomoć kursora implementirali tako da u jedno veliko polje može ići više vezanih lista, mogu li ja pretpostaviti da će u ovo jedno polje ići samo jedan dvostruki red ili treba prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente?

(moj zadatak su samo funkcije ubaci/izbaci na kraju/početku, ali tek toliko da sam siguran)

3. Ako naredba u primjeru glasi "IZBACI", moram li ja provjeravati i za sve ostale mogućnosti (izbaci, Izbaci, izBaCi, ... ) ?[/quote]

1. Samo ispisati poruku, ne izlaziti iz programa;
2. Prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente;
3. Ne morate, neka program u tom slučaju samo ispiše "To nije naredba." i zatim ode na unos nove naredbe.
Shirohige (napisa):
kslaven (napisa):


Da.


Hvala, sad kad sam gotov sam se sjetio još par stvari Confused :

1. Ispis reda: ako je red prazan, treba li samo ispisati poruku da je red prazan ili treba i izaći iz programa tj. treba li funkcija za ispis prekinuti program?

2. Sjetio sam se da smo vezanu listu uz pomoć kursora implementirali tako da u jedno veliko polje može ići više vezanih lista, mogu li ja pretpostaviti da će u ovo jedno polje ići samo jedan dvostruki red ili treba prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente?

(moj zadatak su samo funkcije ubaci/izbaci na kraju/početku, ali tek toliko da sam siguran)

3. Ako naredba u primjeru glasi "IZBACI", moram li ja provjeravati i za sve ostale mogućnosti (izbaci, Izbaci, izBaCi, ... ) ?


1. Samo ispisati poruku, ne izlaziti iz programa;
2. Prilagoditi funkcije tako da mogu i drugi redovi iskoristiti to polje za svoje elemente;
3. Ne morate, neka program u tom slučaju samo ispiše "To nije naredba." i zatim ode na unos nove naredbe.


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
gianluigiana
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 10. 2012. (20:11:49)
Postovi: (D)16
Sarma = la pohva - posuda
-2 = 0 - 2

PostPostano: 21:53 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

mene samo zanima smijem li u ispisu listova, ako se stablo sastoji samo od korijena, ispisati korijen ili se on ne smije racunati kao list...
mene samo zanima smijem li u ispisu listova, ako se stablo sastoji samo od korijena, ispisati korijen ili se on ne smije racunati kao list...


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:37 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

[quote="Silenoz"]Imam VELIKI problem.[/quote]

Iduci put kad zaprostacis u postu, imat ces VECI problem. :P

That put aside, problem je da nesto ne inicijaliziras, pa se dese cuda. Nekad radi, a nekad ne, ovisno o compileru, OSu, stanju memorije,...

Ono sto sam nasao kao problem (ne garantiram da je jedini!) je linija 206:

[code:1] } while ((BiRightChild(P,T)!=LAMBDA)&&(P!=BiRoot(T)));[/code:1]

Tu ti [tt]P[/tt] bude [tt]NULL[/tt], a u [tt]BiRightChild()[/tt] ga dereferenciras, pa program padne.

Dodaj neposredno ispred te linije ovo:

[code:1]printf("P = %p\n", P);[/code:1]

Inace, kad tako nesto isprobavas, skok u novi red na kraju ispisa je kljucan! Necu ulaziti u pricu zasto, ali nemoj ga zaboraviti.

I hope this helped.

@gianluigiana: List je cvor bez djece. Korijen je list ako i samo ako u stablu nema drugih cvorova.
Silenoz (napisa):
Imam VELIKI problem.


Iduci put kad zaprostacis u postu, imat ces VECI problem. Razz

That put aside, problem je da nesto ne inicijaliziras, pa se dese cuda. Nekad radi, a nekad ne, ovisno o compileru, OSu, stanju memorije,...

Ono sto sam nasao kao problem (ne garantiram da je jedini!) je linija 206:

Kod:
                } while ((BiRightChild(P,T)!=LAMBDA)&&(P!=BiRoot(T)));


Tu ti P bude NULL, a u BiRightChild() ga dereferenciras, pa program padne.

Dodaj neposredno ispred te linije ovo:

Kod:
printf("P = %p\n", P);


Inace, kad tako nesto isprobavas, skok u novi red na kraju ispisa je kljucan! Necu ulaziti u pricu zasto, ali nemoj ga zaboraviti.

I hope this helped.

@gianluigiana: List je cvor bez djece. Korijen je list ako i samo ako u stablu nema drugih cvorova.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
nuclear
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 11. 2011. (17:40:12)
Postovi: (74)16
Spol: žensko
Sarma = la pohva - posuda
10 = 20 - 10

PostPostano: 23:17 sri, 27. 11. 2013    Naslov: Citirajte i odgovorite

Sama funkcija kaže: pretvara izraz iz infixa u postfix pomoću dva stoga, jednom su elementi operandi, a drugom stabla. Uputa mi je: na prvom čuvamo operatore, a na drugom sastavljamo stablo, umjesto ispisa operande stavljamo na drugi stog kao stabla s korijenom, i ako treba ispisati neki operator, umjeso ispisa, treba maknuti zadnja dva elementa iz drugog stoga i na njega staviti novo stablo s korijenom tim operatorom i djeca su mu ta dva uklonjena elementa. Gdje mi je greška u programu? :(

[code:1]
void infix_u_postfix(labeltype INFIX[])
{
labeltype c;
int k=1;
STACK2 Sbr;
STACK1 Sop;
MAKE_NULL1(&Sop);
MAKE_NULL2(&Sbr);
int i = 0;
while(1)
{
c = INFIX[i];
if(c == '\0') break;
//znak c je broj
if(operator(c)==0 && specijalni1(c)==0 && specijalni2(c)==0)
{

PUSH2(c,&Sbr);
}
//znak je operator
if(operator(c)==1)
{
while(!EMPTY1(Sop) && prioritet(c,TOP1(Sop)))
{
BTREE *B = (BTREE *) malloc(sizeof(BTREE));
MAKE_NULL(B);
make_new_btree(TOP1(Sop),B);

BTREE *BR, *BL;
uzmi_zadnja_dva(&Sbr,&BR,&BL);
dodaj_djecu(B,BL,BR);
free(BL);
free(BR);
POP1(&Sop);
PUSH2(B,&Sbr);
}
PUSH1(c,&Sop);
}
//znak je otvorena zagrada
if(specijalni1(c)==1)
{
PUSH1(c,&Sop);
}
//znak je zatvorena zagrada
if(specijalni2(c)==1)
{
labeltype prvi=TOP1(Sop);
while(!specijalni1(prvi))
{
BTREE *B = (BTREE *) malloc(sizeof(BTREE));
MAKE_NULL(B);
make_new_btree(prvi,B);
BTREE *BR, *BL;

uzmi_zadnja_dva(&Sbr,&BR,&BL);
dodaj_djecu(B, BL, BR);
free(BL);
free(BR);
POP1(&Sop);
PUSH2(B,&Sbr);
prvi=TOP1(Sop);
}
POP1(&Sop);
}
++i;
}
while(!EMPTY1(Sop))
{
labeltype prvi = TOP1(Sop);
BTREE *B = (BTREE *) malloc(sizeof(BTREE));
BTREE *BR, *BL;
MAKE_NULL(B);
make_new_btree(prvi,B);
uzmi_zadnja_dva(&Sbr,&BR,&BL);
dodaj_djecu(B,BL,BR);
free(BL);
free(BR);
PUSH2(B,&Sbr);
POP1(&Sop);
}

BTREE *Brez;
Brez = TOP2(Sbr);
POSTORDER(ROOT(*Brez), *Brez);
}[/code:1]

nema veze, skužila sam da sam dodavala el umjesto stabla u Sbr, ništa :)
Sama funkcija kaže: pretvara izraz iz infixa u postfix pomoću dva stoga, jednom su elementi operandi, a drugom stabla. Uputa mi je: na prvom čuvamo operatore, a na drugom sastavljamo stablo, umjesto ispisa operande stavljamo na drugi stog kao stabla s korijenom, i ako treba ispisati neki operator, umjeso ispisa, treba maknuti zadnja dva elementa iz drugog stoga i na njega staviti novo stablo s korijenom tim operatorom i djeca su mu ta dva uklonjena elementa. Gdje mi je greška u programu? Sad

Kod:

void infix_u_postfix(labeltype INFIX[])
{
    labeltype c;
    int k=1;
    STACK2 Sbr;
    STACK1 Sop;
    MAKE_NULL1(&Sop);
    MAKE_NULL2(&Sbr);
    int i = 0;
    while(1)
    {
        c = INFIX[i];
        if(c == '\0') break;
        //znak c je broj
        if(operator(c)==0 && specijalni1(c)==0 && specijalni2(c)==0)
        {

            PUSH2(c,&Sbr);
        }
        //znak je operator
        if(operator(c)==1)
        {
                  while(!EMPTY1(Sop) && prioritet(c,TOP1(Sop)))
            {
                BTREE *B = (BTREE *) malloc(sizeof(BTREE));
                MAKE_NULL(B);
                make_new_btree(TOP1(Sop),B);

                BTREE *BR, *BL;
                uzmi_zadnja_dva(&Sbr,&BR,&BL);
                dodaj_djecu(B,BL,BR);
                        free(BL);
                        free(BR);
                POP1(&Sop);
                PUSH2(B,&Sbr);
            }
            PUSH1(c,&Sop);
        }
        //znak je otvorena zagrada
        if(specijalni1(c)==1)
        {
            PUSH1(c,&Sop);
        }
        //znak je zatvorena zagrada
        if(specijalni2(c)==1)
        {
            labeltype prvi=TOP1(Sop);
            while(!specijalni1(prvi))
            {
                BTREE *B = (BTREE *) malloc(sizeof(BTREE));
                MAKE_NULL(B);
                make_new_btree(prvi,B);
                BTREE *BR, *BL;

                uzmi_zadnja_dva(&Sbr,&BR,&BL);
                dodaj_djecu(B, BL, BR);
                free(BL);
                free(BR);
                POP1(&Sop);
                PUSH2(B,&Sbr);
                prvi=TOP1(Sop);
            }
            POP1(&Sop);
        }
        ++i;
    }
    while(!EMPTY1(Sop))
    {
        labeltype prvi = TOP1(Sop);
        BTREE *B = (BTREE *) malloc(sizeof(BTREE));
        BTREE *BR, *BL;
        MAKE_NULL(B);
        make_new_btree(prvi,B);
        uzmi_zadnja_dva(&Sbr,&BR,&BL);
            dodaj_djecu(B,BL,BR);
            free(BL);
            free(BR);
        PUSH2(B,&Sbr);
        POP1(&Sop);
    }

    BTREE *Brez;
    Brez = TOP2(Sbr);
    POSTORDER(ROOT(*Brez), *Brez);
}


nema veze, skužila sam da sam dodavala el umjesto stabla u Sbr, ništa Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
hipernova
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 25. 09. 2011. (20:15:21)
Postovi: (C)16
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Zagreb

PostPostano: 0:13 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

pomoć!

nece mi sagraditi stablo i nemogu nikako skuziti zasto :(

napravio sam pastebin jer je predugacak kod


http://pastebin.com/gxYPxx6f


EDIT: rjesio sam :D
pomoć!

nece mi sagraditi stablo i nemogu nikako skuziti zasto Sad

napravio sam pastebin jer je predugacak kod


http://pastebin.com/gxYPxx6f


EDIT: rjesio sam Very Happy


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 1:45 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

[quote="vsego"]Iduci put kad zaprostacis u postu, imat ces VECI problem. :P[/quote]
Sorry, nisam uopće shvatio da mi je pobjeglo (pretpostavljam ono na w) :/

[quote="vsego"]That put aside, problem je da nesto ne inicijaliziras, pa se dese cuda. Nekad radi, a nekad ne, ovisno o compileru, OSu, stanju memorije,...

Ono sto sam nasao kao problem (ne garantiram da je jedini!) je linija 206:

[code:1] } while ((BiRightChild(P,T)!=LAMBDA)&&(P!=BiRoot(T)));[/code:1]

Tu ti [tt]P[/tt] bude [tt]NULL[/tt], a u [tt]BiRightChild()[/tt] ga dereferenciras, pa program padne.

Dodaj neposredno ispred te linije ovo:

[code:1]printf("P = %p\n", P);[/code:1]

Inace, kad tako nesto isprobavas, skok u novi red na kraju ispisa je kljucan! Necu ulaziti u pricu zasto, ali nemoj ga zaboraviti.

I hope this helped..[/quote]
Što se tiče inicijalizacije, ubacio sam je gdje sam god mogao (radna verzija koda, sa svim kontrolnim ispisivanjima: http://pastebin.com/aR6s8JCB ), opet puca random:
http://www.zaslike.com/files/ethx7h3tbon53s06r3ez.jpg
dakle, zakljucujem da pucanje na mallocu nema veze sa mojom inicijalizacijom, zanima me samo zasto skroz stane a ne dode do ispisa za ne moze alocirati O.o

Ovo dalje idem popravljati, samo da mi prode taj malloc sto cesce.


I puno hvala na postu, jesam debagirao cijelo popodne i uredivao petlju na slican nacin sa ispisima, ali ovo je dalo ideju da bi bilo zanimljivo na svakom redu paziti sto radi+ovo sa whileom valjda nikad ne bih vidio sam. Dugo je do ujutro, tko je vidio spavati.


EDIT: E da, moram primjetiti da mi ovako kod puno puno bolje radi i da je u zadnjih 10ak pucao iskljucivo 2 puta i to na istom mjestu, pri alociranju na '|'. Puno hvala.
Još ću ga 20ak puta runnati, ako će jedino tu pucati snimam ovako, snimam sa printf-ovima čisto da mogu pokazati gdje puca ako će pucati. (svaku 20.tu izbaci i tamo na while-u ili if-u odmah do tog while-a, ali za divno cudo niti jednom pointer nije bio 000000 (NULL) O.o stvarno ne kuzim. I dalje cu kopati, a ako i bude kasno za sutra, svejedno bih volio ovo shvatiti i rjesiti - previse sam vremena ulozio da ne prode.
vsego (napisa):
Iduci put kad zaprostacis u postu, imat ces VECI problem. Razz

Sorry, nisam uopće shvatio da mi je pobjeglo (pretpostavljam ono na w) Ehm?

vsego (napisa):
That put aside, problem je da nesto ne inicijaliziras, pa se dese cuda. Nekad radi, a nekad ne, ovisno o compileru, OSu, stanju memorije,...

Ono sto sam nasao kao problem (ne garantiram da je jedini!) je linija 206:

Kod:
                } while ((BiRightChild(P,T)!=LAMBDA)&&(P!=BiRoot(T)));


Tu ti P bude NULL, a u BiRightChild() ga dereferenciras, pa program padne.

Dodaj neposredno ispred te linije ovo:

Kod:
printf("P = %p\n", P);


Inace, kad tako nesto isprobavas, skok u novi red na kraju ispisa je kljucan! Necu ulaziti u pricu zasto, ali nemoj ga zaboraviti.

I hope this helped..

Što se tiče inicijalizacije, ubacio sam je gdje sam god mogao (radna verzija koda, sa svim kontrolnim ispisivanjima: http://pastebin.com/aR6s8JCB ), opet puca random:
http://www.zaslike.com/files/ethx7h3tbon53s06r3ez.jpg
dakle, zakljucujem da pucanje na mallocu nema veze sa mojom inicijalizacijom, zanima me samo zasto skroz stane a ne dode do ispisa za ne moze alocirati O.o

Ovo dalje idem popravljati, samo da mi prode taj malloc sto cesce.


I puno hvala na postu, jesam debagirao cijelo popodne i uredivao petlju na slican nacin sa ispisima, ali ovo je dalo ideju da bi bilo zanimljivo na svakom redu paziti sto radi+ovo sa whileom valjda nikad ne bih vidio sam. Dugo je do ujutro, tko je vidio spavati.


EDIT: E da, moram primjetiti da mi ovako kod puno puno bolje radi i da je u zadnjih 10ak pucao iskljucivo 2 puta i to na istom mjestu, pri alociranju na '|'. Puno hvala.
Još ću ga 20ak puta runnati, ako će jedino tu pucati snimam ovako, snimam sa printf-ovima čisto da mogu pokazati gdje puca ako će pucati. (svaku 20.tu izbaci i tamo na while-u ili if-u odmah do tog while-a, ali za divno cudo niti jednom pointer nije bio 000000 (NULL) O.o stvarno ne kuzim. I dalje cu kopati, a ako i bude kasno za sutra, svejedno bih volio ovo shvatiti i rjesiti - previse sam vremena ulozio da ne prode.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 3:39 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

@Silenoz: Lajna 248:

[code:1] if (BiRightChild(P,T)==LAMBDA)[/code:1]

Tu ti [tt]P[/tt] ponekad padne na [tt]NULL[/tt] (tj. postane roditelj od korijena), pa se stvar raspadne. Ako stavis ne-ATP-ovsko:

[code:1] if (P && BiRightChild(P,T)==LAMBDA)[/code:1]

onda prodje (ali ima neku zbrlju u ispisu, kao da mi je na ulazu procitao jedan znak vishka). Moj ulaz je [tt]&11[/tt]; greska mi se ne dogadja s tvojim ulazom.
@Silenoz: Lajna 248:

Kod:
                if (BiRightChild(P,T)==LAMBDA)


Tu ti P ponekad padne na NULL (tj. postane roditelj od korijena), pa se stvar raspadne. Ako stavis ne-ATP-ovsko:

Kod:
                if (P && BiRightChild(P,T)==LAMBDA)


onda prodje (ali ima neku zbrlju u ispisu, kao da mi je na ulazu procitao jedan znak vishka). Moj ulaz je &11; greska mi se ne dogadja s tvojim ulazom.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi Vremenska zona: GMT + 01:00.
Idite na Prethodno  1, 2, 3  Sljedeće
Stranica 2 / 3.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan