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
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
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: 3:57 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

Uspio sam doci do tu (tj vidjeti gdje je problem), ali sada me zafrkaje i roditelj, jednostavno se unutra 'polomi' negdje u rekurziji. Toliko cesto crkava na alokaciji da do ovoga "pravog" problema dodem svaki ko-zna-koji-put. Sad mi je sve teze i teze proci kroz alokacije uopce (pretpostavljam da sam si ubio memoriju bez free() ).

Imam ideju rješenja zadržati onu formu i provjeravati da li je to korijen stabla prije nego trazim roditelja sa
[code:1]if (BiParent(P,T)!=LAMBDA)
P=BiParent(P,T);[/code:1]
A onda se dogodi da jedva dode do tog dijela, a kad dode 80% slucajeva se zbrejka u petlji roditelja (sto vise ovih BiMakeNull-ova i malloca ima, to sve cesce pada ranije). I tako ja nikako ne mogu docekat 'obicno' pucanje na racun glavne funkcije s tim kodom. valjda preko sat pokusavam i sad mozgam sto ne valja s implementacijom da se stalno rusi [u]na alokaciji[/u] O.o


restartao sam komp, uzeo ovaj stari kod, vratio uvijete koji 'nisu valjali' uz ovaj dodatak (ako je cvor korijen vise ne ide 'uzbrdo' i ne dobiva lambdu ko roditelja). do sad samo na alociranju izbacuje. rjesenja dobro ispadaju ali stvarno precesto ispada.
Uspio sam doci do tu (tj vidjeti gdje je problem), ali sada me zafrkaje i roditelj, jednostavno se unutra 'polomi' negdje u rekurziji. Toliko cesto crkava na alokaciji da do ovoga "pravog" problema dodem svaki ko-zna-koji-put. Sad mi je sve teze i teze proci kroz alokacije uopce (pretpostavljam da sam si ubio memoriju bez free() ).

Imam ideju rješenja zadržati onu formu i provjeravati da li je to korijen stabla prije nego trazim roditelja sa
Kod:
if (BiParent(P,T)!=LAMBDA)
P=BiParent(P,T);

A onda se dogodi da jedva dode do tog dijela, a kad dode 80% slucajeva se zbrejka u petlji roditelja (sto vise ovih BiMakeNull-ova i malloca ima, to sve cesce pada ranije). I tako ja nikako ne mogu docekat 'obicno' pucanje na racun glavne funkcije s tim kodom. valjda preko sat pokusavam i sad mozgam sto ne valja s implementacijom da se stalno rusi na alokaciji O.o


restartao sam komp, uzeo ovaj stari kod, vratio uvijete koji 'nisu valjali' uz ovaj dodatak (ako je cvor korijen vise ne ide 'uzbrdo' i ne dobiva lambdu ko roditelja). do sad samo na alociranju izbacuje. rjesenja dobro ispadaju ali stvarno precesto ispada.


Zadnja promjena: Silenoz; 4:17 čet, 28. 11. 2013; ukupno mijenjano 1 put.
[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: 4:17 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

Gledam malo po kodu...

[tt]BiDelete[/tt] nece dobro raditi za korijen i za ne-listove.

[tt]Unos[/tt] mi nije jasan. Ako lijevo dijete ne postoji, ubaci tamo novi znak (operator ili operand, svejedno). Onda nastavi ulaz za to lijevo dijete. Nece li onda sve biti dodatno kao lijevo dijete? (sorry ako sam nesto fulao; umor radi svoje)

Trenutno nemam inspiracije sto bi jos moglo biti krivo. Nadam se da ce ovo pomoci.
Gledam malo po kodu...

BiDelete nece dobro raditi za korijen i za ne-listove.

Unos mi nije jasan. Ako lijevo dijete ne postoji, ubaci tamo novi znak (operator ili operand, svejedno). Onda nastavi ulaz za to lijevo dijete. Nece li onda sve biti dodatno kao lijevo dijete? (sorry ako sam nesto fulao; umor radi svoje)

Trenutno nemam inspiracije sto bi jos moglo biti krivo. Nadam se da ce ovo pomoci.



_________________
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
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: 4:26 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

[quote="vsego"]Gledam malo po kodu...

[tt]BiDelete[/tt] nece dobro raditi za korijen i za ne-listove.

[tt]Unos[/tt] mi nije jasan. Ako lijevo dijete ne postoji, ubaci tamo novi znak (operator ili operand, svejedno). Onda nastavi ulaz za to lijevo dijete. Nece li onda sve biti dodatno kao lijevo dijete? (sorry ako sam nesto fulao; umor radi svoje)

Trenutno nemam inspiracije sto bi jos moglo biti krivo. Nadam se da ce ovo pomoci.[/quote]
Da, BiDelete je neposoban (ne koristim ga uopce), ali tako je definiran u salabahteru a mi moramo napraviti implementaciju po salabahteru.
[quote]void BiDelete(node i,BinaryTree *Tp) . . . funkcija izbacuje list i iz binarnog stabla *Tp. [u]Nije definirana[/u] ako i ne pripada *Tp ili [u]ako i ima djece[/u][/quote]


Unos ima dva dijela. Prvi je ako je znak tj operator, onda nastavlja dalje po lijevoj strani jer znak uvijek ima dva djeteta (zadane su mi 3 binarne operacije kao moguce). ako je operand (dakle neko slovo) onda ako moze lijevo pise lijevo i ostaje, inace desno i 'vraca se' do prvog slobodnog desnog ili korijena (ako je korijen zavrsava unos).



Za sad jedino znam da se rusi na tim alokacijama. I sa ovim 'novim' dijelom koji pazi da parent nikad ne bude null.. A dok ga nije bilo, opet se puno cesce rusio na alokacijama nego na null-roditelju (makar, nije mi jasno zasto uvijek nije vracao null, ocekivao bih da za isti unos i iste naredbe isto prolazi petlje i uvijek vrijedi ista logika).


Skroz kuzim za umor - takoder jedva gledam. Hvala na pokusajima uopce, cijenim to.
vsego (napisa):
Gledam malo po kodu...

BiDelete nece dobro raditi za korijen i za ne-listove.

Unos mi nije jasan. Ako lijevo dijete ne postoji, ubaci tamo novi znak (operator ili operand, svejedno). Onda nastavi ulaz za to lijevo dijete. Nece li onda sve biti dodatno kao lijevo dijete? (sorry ako sam nesto fulao; umor radi svoje)

Trenutno nemam inspiracije sto bi jos moglo biti krivo. Nadam se da ce ovo pomoci.

Da, BiDelete je neposoban (ne koristim ga uopce), ali tako je definiran u salabahteru a mi moramo napraviti implementaciju po salabahteru.
Citat:
void BiDelete(node i,BinaryTree *Tp) . . . funkcija izbacuje list i iz binarnog stabla *Tp. Nije definirana ako i ne pripada *Tp ili ako i ima djece



Unos ima dva dijela. Prvi je ako je znak tj operator, onda nastavlja dalje po lijevoj strani jer znak uvijek ima dva djeteta (zadane su mi 3 binarne operacije kao moguce). ako je operand (dakle neko slovo) onda ako moze lijevo pise lijevo i ostaje, inace desno i 'vraca se' do prvog slobodnog desnog ili korijena (ako je korijen zavrsava unos).



Za sad jedino znam da se rusi na tim alokacijama. I sa ovim 'novim' dijelom koji pazi da parent nikad ne bude null.. A dok ga nije bilo, opet se puno cesce rusio na alokacijama nego na null-roditelju (makar, nije mi jasno zasto uvijek nije vracao null, ocekivao bih da za isti unos i iste naredbe isto prolazi petlje i uvijek vrijedi ista logika).


Skroz kuzim za umor - takoder jedva gledam. Hvala na pokusajima uopce, cijenim to.
[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: 11:52 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

Ima li netko voljan da mi pogleda kod i kaže gdje nije dobro? Poslala bih ga, ne bi tu stavljala jer je jako dugačak (400 linija)
Ima li netko voljan da mi pogleda kod i kaže gdje nije dobro? Poslala bih ga, ne bi tu stavljala jer je jako dugačak (400 linija)


[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: 12:10 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

@Silenoz:

Nasao sam. Problem je kad korijenu dodas desno dijete i onda krenes na roditelja (kojeg korijen nema). To radis u [tt]do { ... } while[/tt] petlji, sto se jednom nuzno izvede, a u slucaju [tt]P = korijen[/tt] ne smije niti jednom.

Zamijeni [tt]do { ... } while[/tt] s [tt]while { ... }[/tt], pa bi ti trebalo raditi. Moj test primjer je kao i u prethodnom postu.

Ako zelis izmijenjeni kod (s dodatnim ispisima s kojima sam to nasao), javi se na PM, da ne lijepim ovdje tako velike kodove.

[quote="Silenoz"]ocekivao bih da za isti unos i iste naredbe isto prolazi petlje i uvijek vrijedi ista logika[/quote]

Ne. Kad napravis nesto ilegalno s pointerima, onda rezultat vise nije nuzno deterministicki, jer ne ovisi samo o tvojim varijablama.
@Silenoz:

Nasao sam. Problem je kad korijenu dodas desno dijete i onda krenes na roditelja (kojeg korijen nema). To radis u do { ... } while petlji, sto se jednom nuzno izvede, a u slucaju P = korijen ne smije niti jednom.

Zamijeni do { ... } while s while { ... }, pa bi ti trebalo raditi. Moj test primjer je kao i u prethodnom postu.

Ako zelis izmijenjeni kod (s dodatnim ispisima s kojima sam to nasao), javi se na PM, da ne lijepim ovdje tako velike kodove.

Silenoz (napisa):
ocekivao bih da za isti unos i iste naredbe isto prolazi petlje i uvijek vrijedi ista logika


Ne. Kad napravis nesto ilegalno s pointerima, onda rezultat vise nije nuzno deterministicki, jer ne ovisi samo o tvojim varijablama.



_________________
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
_eternity
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 01. 2012. (13:53:51)
Postovi: (8)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 15:53 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

Htio bih samo nesto reci u vezi 1.zadace.Dobio sam zadatak vezan uz binarno stablo i pokusavao sam 2 dana rijesit ga i nisam uspio.Mislim da nije u redu da su se medu zadacima pojavili i oni sa stablima,buduci da smo zadnji sat vjezbi doslovno ispisivali definiciju stabla i nismo rijesili niti jedan konkretan zadatak.S obzirom da skripte iz vjezbi nema,ne razumijem kako se ocekuje od nas da znamo rijesiti neki kompliciraniji zadatak?A 8 bodova ipak nije malo..
Htio bih samo nesto reci u vezi 1.zadace.Dobio sam zadatak vezan uz binarno stablo i pokusavao sam 2 dana rijesit ga i nisam uspio.Mislim da nije u redu da su se medu zadacima pojavili i oni sa stablima,buduci da smo zadnji sat vjezbi doslovno ispisivali definiciju stabla i nismo rijesili niti jedan konkretan zadatak.S obzirom da skripte iz vjezbi nema,ne razumijem kako se ocekuje od nas da znamo rijesiti neki kompliciraniji zadatak?A 8 bodova ipak nije malo..


[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: 16:23 čet, 28. 11. 2013    Naslov: Citirajte i odgovorite

[quote="_eternity"]Htio bih samo nesto reci u vezi 1.zadace.Dobio sam zadatak vezan uz binarno stablo i pokusavao sam 2 dana rijesit ga i nisam uspio.Mislim da nije u redu da su se medu zadacima pojavili i oni sa stablima,buduci da smo zadnji sat vjezbi doslovno ispisivali definiciju stabla i nismo rijesili niti jedan konkretan zadatak.[b]S obzirom da skripte iz vjezbi nema,[/b]ne razumijem kako se ocekuje od nas da znamo rijesiti neki kompliciraniji zadatak?A 8 bodova ipak nije malo..[/quote]

Malo dolje:
[url]http://degiorgi.math.hr/forum/viewtopic.php?t=15560[/url]
_eternity (napisa):
Htio bih samo nesto reci u vezi 1.zadace.Dobio sam zadatak vezan uz binarno stablo i pokusavao sam 2 dana rijesit ga i nisam uspio.Mislim da nije u redu da su se medu zadacima pojavili i oni sa stablima,buduci da smo zadnji sat vjezbi doslovno ispisivali definiciju stabla i nismo rijesili niti jedan konkretan zadatak.S obzirom da skripte iz vjezbi nema,ne razumijem kako se ocekuje od nas da znamo rijesiti neki kompliciraniji zadatak?A 8 bodova ipak nije malo..


Malo dolje:
http://degiorgi.math.hr/forum/viewtopic.php?t=15560


[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
Stranica 3 / 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