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

Neovisnost o implementaciji
WWW:

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


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 19:55 sri, 11. 11. 2009    Naslov: Neovisnost o implementaciji Citirajte i odgovorite

Pozdrav,

Zanima me je li ovo dobro: dakle, zadatak je napisati funkciju [b]BTREE novo( int n )[/b] koja kreira stablo visine [b]n[/b] takvo da svaki čvor ima samo [b]desno[/b] dijete.
[b]Rj:[/b]
[code:1]
BTREE novo( int n ) {
printf( "%d ", n );
BTREE B;
BTREE_MAKE_NULL( &B );
if ( !n ) return B;
return BTREE_CREATE( 'A', LAMBDA, novo( n-1 ), &B );

}
[/code:1]

Točnije, zanima me smijem li ovako napisati:
[code:1]
return BTREE_CREATE( 'A', LAMBDA, novo( n-1 ), &B );
[/code:1]
jer funkcija CREATE vraća node, a ja onda taj node koristim kao BTREE.
Kvari li to neovisnost o implementaciji?

Hvala
Pozdrav,

Zanima me je li ovo dobro: dakle, zadatak je napisati funkciju BTREE novo( int n ) koja kreira stablo visine n takvo da svaki čvor ima samo desno dijete.
Rj:
Kod:

BTREE novo( int n ) {
    printf( "%d ", n );
    BTREE B;
    BTREE_MAKE_NULL( &B );
    if ( !n ) return B;
    return BTREE_CREATE( 'A', LAMBDA, novo( n-1 ), &B );
   
}


Točnije, zanima me smijem li ovako napisati:
Kod:

return BTREE_CREATE( 'A', LAMBDA, novo( n-1 ), &B );

jer funkcija CREATE vraća node, a ja onda taj node koristim kao BTREE.
Kvari li to neovisnost o implementaciji?

Hvala



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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:13 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Nisam s kolegija, pa ne znam: vraca li [tt]BTREE_CREATE[/tt] mozda upravo ovaj [tt]&B[/tt]? Ako da, to je lokalna varijabla i "na van" ne smijes vratiti pointer na nju (jer ona automatski nestaje kad izadjes iz funkcije).
Nisam s kolegija, pa ne znam: vraca li BTREE_CREATE mozda upravo ovaj &B? Ako da, to je lokalna varijabla i "na van" ne smijes vratiti pointer na nju (jer ona automatski nestaje kad izadjes iz funkcije).



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


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 20:38 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Ne razumijem bas.
CREATE vraća korijen stabla B, što u stvari je to stablo.

Gornji program radi. Jedino što mene zanima je smijem li to tako napisati. Jer u stvari CREATE prima [b]BTREE[/b] (na onom mjestu gdje piše novo(n-1)) ali CREATE vraća [b]node[/b]. To su dvije iste stvari (različita imena za isto, u mojoj implementaciji). Samo što ja mislim da je to u svakoj implementaciji tako.
Ne razumijem bas.
CREATE vraća korijen stabla B, što u stvari je to stablo.

Gornji program radi. Jedino što mene zanima je smijem li to tako napisati. Jer u stvari CREATE prima BTREE (na onom mjestu gdje piše novo(n-1)) ali CREATE vraća node. To su dvije iste stvari (različita imena za isto, u mojoj implementaciji). Samo što ja mislim da je to u svakoj implementaciji tako.



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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:47 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Nisu bitni samo tipovi. To sto [tt]BTREE_CREATE()[/tt] vraca, je l' alocirano u samoj funkciji ili kako se dodje do toga? Ne zanima me koju vrijednost ima, nego koja je to memorijska lokacija?
1. Dosla od nekog [tt]malloc()[/tt], [tt]calloc()[/tt] i sl. u samoj funkciji,
2. Zapravo je to pointer koji [tt]BTREE_CREATE()[/tt] dobije kao cetvrti parametar,
3. Pointer na nesto trece,
4. Nesto cetvrto (sto)?
Nisu bitni samo tipovi. To sto BTREE_CREATE() vraca, je l' alocirano u samoj funkciji ili kako se dodje do toga? Ne zanima me koju vrijednost ima, nego koja je to memorijska lokacija?
1. Dosla od nekog malloc(), calloc() i sl. u samoj funkciji,
2. Zapravo je to pointer koji BTREE_CREATE() dobije kao cetvrti parametar,
3. Pointer na nesto trece,
4. Nesto cetvrto (sto)?



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


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 21:03 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Odgovor je 1. :)
Odgovor je 1. Smile



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 21:26 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Onda smijes. 8)

Da pojasnim na sto sam ciljao gore... Ovo ne smijes napraviti:
[code:1]char *f(void) {
char x[17], y[] = "Pero";
return strcpy(x, y);
}[/code:1]
jer [tt]strcpy()[/tt] vrati x, sto je pointer na memoriju koja se automatski oslobodi kad izadjes iz funkcije.
Onda smijes. Cool

Da pojasnim na sto sam ciljao gore... Ovo ne smijes napraviti:
Kod:
char *f(void) {
  char x[17], y[] = "Pero";
  return strcpy(x, y);
}

jer strcpy() vrati x, sto je pointer na memoriju koja se automatski oslobodi kad izadjes iz funkcije.



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


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 21:45 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Aha. Razumijem na što ste ciljali. Ali nažalost nije to bila moja nedoumica :)

Moj je problem bio: imam funkciju koja prima podatak tipa [b]BTREE[/b], a ja pošaljem podatak tipa [b]NODE[/b]. To radi zato što su u stvari [b]BTREE [/b]i [b]NODE [/b]jedna te ista stvar (samo se drugačije zovu). Sada, u zadatku piše da treba implementirati neovisno o implementaciji [b]ATP BTREE[/b]. Možda postoji neka implementacija gdje BTREE i NODE nisu jedno te isto, pa moj program [b]neće [/b]raditi. Ali sumnjam da takva implementacija postoji. Pa me zanima kako bi to trebalo napisat ako se ne može ovako kao što sam ja. :D
Aha. Razumijem na što ste ciljali. Ali nažalost nije to bila moja nedoumica Smile

Moj je problem bio: imam funkciju koja prima podatak tipa BTREE, a ja pošaljem podatak tipa NODE. To radi zato što su u stvari BTREE i NODE jedna te ista stvar (samo se drugačije zovu). Sada, u zadatku piše da treba implementirati neovisno o implementaciji ATP BTREE. Možda postoji neka implementacija gdje BTREE i NODE nisu jedno te isto, pa moj program neće raditi. Ali sumnjam da takva implementacija postoji. Pa me zanima kako bi to trebalo napisat ako se ne može ovako kao što sam ja. Very Happy



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 21:54 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Pa, [tt]BTREE[/tt] i [tt]node[/tt] nisu jednaki, recimo, u implementaciji pomocu polja (poglavlje 3.2.2, preciznije strana 30 pri dnu, u skripti na stranici kolegija).
Pa, BTREE i node nisu jednaki, recimo, u implementaciji pomocu polja (poglavlje 3.2.2, preciznije strana 30 pri dnu, u skripti na stranici kolegija).



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


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 22:13 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

Eh. Da. To sam tražio. Hvala :)
Eh. Da. To sam tražio. Hvala Smile



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 22:55 sri, 11. 11. 2009    Naslov: Citirajte i odgovorite

ma ja mislim da je to ok
ovo na 30 str je potpuno binarno stablo, i kod njega nema ni smisla radit ovu funkciju, jer rezultat nije potpuno binarno stablo
ma ja mislim da je to ok
ovo na 30 str je potpuno binarno stablo, i kod njega nema ni smisla radit ovu funkciju, jer rezultat nije potpuno binarno stablo



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pllook
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 11. 2013. (20:56:12)
Postovi: (CD)16
Spol: žensko
Sarma = la pohva - posuda
= 8 - 8

PostPostano: 13:33 ned, 1. 2. 2015    Naslov: Citirajte i odgovorite

Što točno znači da program mora biti neovisan o implementaciji nekog atp-a? Smijemo li onda koristiti funkcije sa službenog šalabahtera (BiCreate, BiMakeNull..)?
Što točno znači da program mora biti neovisan o implementaciji nekog atp-a? Smijemo li onda koristiti funkcije sa službenog šalabahtera (BiCreate, BiMakeNull..)?


[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: 14:16 ned, 1. 2. 2015    Naslov: Citirajte i odgovorite

[quote="pllook"]Što točno znači da program mora biti neovisan o implementaciji nekog atp-a? Smijemo li onda koristiti funkcije sa službenog šalabahtera (BiCreate, BiMakeNull..)?[/quote]

Tocno to trebas koristiti. Ono sto [b]ne smijes[/b] koristiti je kako su te funkcije zapravo implementirane (preko nizova, vezanih listi, etc), tako da program radi u neovisno o toj implementaciji.
pllook (napisa):
Što točno znači da program mora biti neovisan o implementaciji nekog atp-a? Smijemo li onda koristiti funkcije sa službenog šalabahtera (BiCreate, BiMakeNull..)?


Tocno to trebas koristiti. Ono sto ne smijes koristiti je kako su te funkcije zapravo implementirane (preko nizova, vezanih listi, etc), tako da program radi u neovisno o toj implementaciji.



_________________
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.
Stranica 1 / 1.

 
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