Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
Postano: 19:55 sri, 11. 11. 2009 Naslov: Neovisnost o implementaciji |
|
|
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] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:47 sri, 11. 11. 2009 Naslov: |
|
|
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.
|
|
[Vrh] |
|
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:26 sri, 11. 11. 2009 Naslov: |
|
|
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.
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.
|
|
[Vrh] |
|
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:54 sri, 11. 11. 2009 Naslov: |
|
|
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.
|
|
[Vrh] |
|
markotron Forumaš(ica)
Pridružen/a: 26. 10. 2008. (12:07:29) Postovi: (95)16
Spol:
Lokacija: Umag
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
pllook Forumaš(ica)
Pridružen/a: 08. 11. 2013. (20:56:12) Postovi: (CD)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 14:16 ned, 1. 2. 2015 Naslov: |
|
|
[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.
|
|
[Vrh] |
|
|