2.domaća zadaća
Select messages from
# through # FAQ
[/[Print]\]
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8  Sljedeće  :| |:
Forum@DeGiorgi -> Strukture podataka i algoritmi

#41:  Autor/ica: Fruc PostPostano: 20:27 pon, 17. 1. 2011
    —
Trebao bi učitat sve rezervirane riječi iz C-a u jedan rječnik, piše da može iz datoteke, a mene zanima kako se to radi, a ako neko zna neki drugi način a da nije ručno upisivanje također može, hvala

#42:  Autor/ica: ante003 PostPostano: 21:12 pon, 17. 1. 2011
    —
citanje iz datoteke si trebao naucit u prog 2.
ucitas rijec iz datoteke u varijablu word;
insert(word,R); ili kako vec ide funkcija za ubacivanje u rijecnik
ako hoces sve rijeci pokupit iz datoteke, napravi while petlju.

#43:  Autor/ica: CobsLokacija: Geto PostPostano: 21:13 pon, 17. 1. 2011
    —
Fruc (napisa):
Trebao bi učitat sve rezervirane riječi iz C-a u jedan rječnik, piše da može iz datoteke, a mene zanima kako se to radi, a ako neko zna neki drugi način a da nije ručno upisivanje također može, hvala


http://degiorgi.math.hr/prog2/materijali/p2-vjezbe.pdf

pogledaj zadnju lekciju, imaš par početničkih primjera, a imaš još 1000 primjera na internetu, sam malo proćaćkaj

#44:  Autor/ica: Fruc PostPostano: 23:01 pon, 17. 1. 2011
    —
fala riješio sam

#45:  Autor/ica: čungalungaLokacija: varaždin/zagreb PostPostano: 0:10 uto, 18. 1. 2011
    —
jel mi može neko napisati implementaciju za COMPUTE za MAPPING pomoću otvorenog linearnog hashiranja?

Edit: napisano Razz


Zadnja promjena: čungalunga; 2:34 uto, 18. 1. 2011; ukupno mijenjano 2 put/a.

#46:  Autor/ica: -georges- PostPostano: 0:30 uto, 18. 1. 2011
    —
Osmislite algoritam i napišite odgovarajući program za sortiranje m vektora oblika: X(r)=(x1(r),...,xn(r)), r=1,..,m. Kažemo da je vektor X(j) < X(k) ako postoji i, 1 ≤ i ≤ n takav da vrijedi: xr(j) = xr(k) za sve 1 ≤ r < i i xi(j) < xi(k) (to jest, sortira se leksikografski). Nemojte uvoditi ograničenja na veličinu brojeva m i n.


Ulazni podaci: u prvom retku brojevi m i n; u svakom od idućih m redaka po n brojeva koji čine koordinate u pojedinom vektoru.
Izlazni podaci: m redaka, svaki sa po n redaka; u svakom retku nalazi se koordinatni zapis jednog vektora; vektori trebaju biti navedeni u sortiranom redoslijedu.
Na primjer, za ulazne podatke:
4 3
5 2 3
1 4 2
5 2 1
6 2 3
treba ispisati:
1 4 2
5 2 1
5 2 3
6 2 3



ako ima neka dobra duša da mi da neke smjernice jer ja uopće nemam pojma koji atp bi koristil.

i da, znam da sam se rano sjetil. Wink

#47: Makar jos nije dosla... Autor/ica: kkarlo PostPostano: 21:13 sub, 17. 12. 2011
    —
Nest sam poceo radit, i zapeo vec na pocetku... Pa da ne odustanem tako brzo, ak moze netko rec di je problem.
Znaci atp set, preko sortirane vezane liste.
Kod:

typedef int elementtype;
typedef struct cell_tag{
    elementtype element;
    struct cell_tag *next;
}celltype;
typedef celltype *SET;
void MAKE_NULL(SET A)
{
    A=(celltype*)malloc(sizeof(celltype));
    A->next=NULL;
}
int MEMBER(int x, SET A)
{
    SET pom=A;
    while(pom->next != NULL){
        if(pom->element==x)
        return 1;
        pom=pom->next;
    }

    if(pom->element==x) return 1;

    return 0;
}
void INSERT(int x, SET A)
{
    celltype *novi,*pom=A;
    if(!MEMBER(x,A)){
            novi=(celltype*)malloc(sizeof(celltype));
            while(pom->next != NULL){
                pom=pom->next;
            }
            pom->next=novi;
            novi->next=NULL;
            novi->element=x;
            sortiraj(A);
    }
}

I tu mi vec steka... Prvi insert nekog broja i vec pada. Ne kuzim zasto, gledao sam gdje se srusi, i rusi se u memberu, ali nije mi jasno zasto jer prije poziva funkcije insert sam pozvao make null?

#48:  Autor/ica: ivstojic PostPostano: 21:26 sub, 17. 12. 2011
    —
Problem je sto funkciji MAKE_NULL saljes pointer, a ne pointer na pointer. Ako u C-u zelis u funkciji mijenjati argument, onda saljes pointer na njega. Ti ovdje zelis mijenjati pointer tipa celltype* (zelis u njega spremiti adresu koju vraca malloc), pa funkciji moras dati pointer na to, dakle pointer na pointer.

Nesto ovako bi trebalo raditi:

Kod:

void MAKE_NULL (SET *A)
{
    *A = (celltype*) malloc(sizeof(celltype));
    (*A)->next = NULL;
}

#49:  Autor/ica: kkarlo PostPostano: 21:53 sub, 17. 12. 2011
    —
ivstojic (napisa):
Problem je sto funkciji MAKE_NULL saljes pointer, a ne pointer na pointer. Ako u C-u zelis u funkciji mijenjati argument, onda saljes pointer na njega. Ti ovdje zelis mijenjati pointer tipa celltype* (zelis u njega spremiti adresu koju vraca malloc), pa funkciji moras dati pointer na to, dakle pointer na pointer.

Nesto ovako bi trebalo raditi:

Kod:

void MAKE_NULL (SET *A)
{
    *A = (celltype*) malloc(sizeof(celltype));
    (*A)->next = NULL;
}

Hvala. Ali i dalje mi ne radi... Mislim nisam korisito double pointere od prog2, a ni tamo nismo nest forsali double pointere, tak da bi svaka pomoc dobro dosla... Evo par pitanja:
Znači u mainu imam SET *A (sto je ustvari **celltype). I sad kad ga šaljem u MAKE_NULL kao argument, da li stavljam *A?
I da li moram prije poziva alocirat memoriju za A?
Tj. da li bi to izgledalo ovako:
SET *A;
A=(SET*)malloc(sizeof(SET));
MAKE_NULL(*A);
I dalje pitanje...
Što kada imam funkciju MEMBER u kojoj ne želim mijenjat ništa kako njoj predajem A? MEMBER(?)
Malko me zbunjuju ti double pointeri...
Confused

#50:  Autor/ica: ivstojic PostPostano: 22:24 sub, 17. 12. 2011
    —
U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:

Kod:

SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...


Princip je isti kao kad imas int koji zelis mijenjati u funkciji – funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.

Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A.

#51:  Autor/ica: kkarlo PostPostano: 9:46 ned, 18. 12. 2011
    —
ivstojic (napisa):
U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:

Kod:

SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...


Princip je isti kao kad imas int koji zelis mijenjati u funkciji – funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.

Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A.

Hvala, uspio sam!
Very Happy

#52:  Autor/ica: kkarlo PostPostano: 10:24 čet, 5. 1. 2012
    —
Sta nije danas trebala bit objavljena zadaca?
Ili je to sutra a meni su se malo datumi pomijesali...?
Surprised

#53:  Autor/ica: kkarlo PostPostano: 21:18 čet, 5. 1. 2012
    —
kkarlo (napisa):
Sta nije danas trebala bit objavljena zadaca?
Ili je to sutra a meni su se malo datumi pomijesali...?
Surprised

I da sam sebi odgovorim:

http://web.math.pmf.unizg.hr/nastava/spa/zadaci.php

Cool

#54:  Autor/ica: kkarlo PostPostano: 18:24 sri, 11. 1. 2012
    —
Moj zadatak:
Implementirajte a.t.p. SET pomoću nesortirane vezane liste (veze u listi su uspostavljene pomoću pointera) i pretpostavku da skupovi sadrže podatke tipa char.


Ulazni podaci: dva niza znakova koji predstavljaju elemente dvaju skupova A i B.
Izlazni podaci: 5 nizova znakova, svaki u jednom redu – unija, presjek, razlika A∖ B, maximalni element skupa A; zadnji string je DA ako je A⊆ B, a NE u protivnom. Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!

I sad me muci ako imam A=SONJA i B=ANA, da li u uniju idu oba A ili samo jedno?
Unija=SONJA ili SONJAA ??
Pretpostavljam da je ovo drugo, ali da provjerim...
Jer ako je prvo tocno, onda ako je A=KOKO i B=KOKOLO, AUB bi imala manje elemenata od samog B.
I jel presjek onda isto KOKO kod ovog zadnjeg primjera?

#55:  Autor/ica: @na PostPostano: 20:18 sri, 11. 1. 2012
    —
pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!"

znači..unija ti je npr. od SONJA i ANA → SONJA, tj. od KOKO i KOKOLO → KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO

...tako sam barem ja skužila...da si dobio MULTISET onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - ne ubacuješ ga više Wink

#56:  Autor/ica: kkarlo PostPostano: 20:30 sri, 11. 1. 2012
    —
@na (napisa):
pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!"

znači..unija ti je npr. od SONJA i ANA → SONJA, tj. od KOKO i KOKOLO → KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO

...tako sam barem ja skužila...da si dobio MULTISET onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - ne ubacuješ ga više Wink

Ma napravio sam ja vec na oba nacina...
Samo pitam s kojim da se pojavim na predaji zadace...
Laughing
Ali, hvala.

#57:  Autor/ica: minora665 PostPostano: 20:51 sri, 11. 1. 2012
    —
Dobila sam zadatak (između ostalog) implementirati TREE pomoću polja na temelju veze čvor - prvo dijete - slijedeći brat. Nije mi jasno sto je "globalni kursor avail" koji se koristi u skripti u poglavlju o toj implementaciji. Dakle ako itko zna please sto je to ne kuzim jel to nesto u c-u, moram li ga ja definirati, kako? Kuzim kako ga koristit u implementaciji (on je prvi slobodni node za cvor koji stvaramo) ali ne znam kako njega samog da deklariram implementiram ili sto vec trebam.... Confused

#58:  Autor/ica: kkarlo PostPostano: 21:17 sri, 11. 1. 2012
    —
minora665 (napisa):
Dobila sam zadatak (između ostalog) implementirati TREE pomoću polja na temelju veze čvor - prvo dijete - slijedeći brat. Nije mi jasno sto je "globalni kursor avail" koji se koristi u skripti u poglavlju o toj implementaciji. Dakle ako itko zna please sto je to ne kuzim jel to nesto u c-u, moram li ga ja definirati, kako? Kuzim kako ga koristit u implementaciji (on je prvi slobodni node za cvor koji stvaramo) ali ne znam kako njega samog da deklariram implementiram ili sto vec trebam.... Confused

Trebas ga ti definirat, u to sam siguran, a kako ga definirat, e u to nisam siguran.
Mozda ovako:
node avail;
u njega spremis prvog slobodnog, a onda kako pise u skripti, tom slobodnom u next_sibling stavis node od slijedeceg slobodnog, pa slijedecem opet...itd. a zadnjem stavis -1.(tj.svakom kojeg ubacis stavis next_sibling=-1, pa ako ima jos slobodnih onda mjenjas)
Naravno moras pazit kako uzmes neki koji je bio slobodan da kad ga maknes iz liste, da onom prije njega u next_sibling stavis next_sibling od ovog kojeg si iskoristila.
Naravno, nisam siguran da li je to tocno, ali mozes probat.

#59:  Autor/ica: michelangelo PostPostano: 20:34 čet, 12. 1. 2012
    —
može neko pojašnjenje ovako zadane strukture nisam sigurna s čime tu zapravo raspolažem... ovaj labels mi nije jasan, što mi tu zapravo ulazi???

Neka je uredjeno stablo prikazano pomoću slijedeće strukture podataka:

typedef struct {
LIST header[maxnodes] ;
labeltype labels[maxnodes] ;
node root;
} TREE;

Uz ovakvu reprezentaciju implementirajte a.t.p. TREE. Pretpostavljamo da je node tipa int, labeltype je podatak tipa char, dok je a.t.p. LIST implementiran pomoću pointera, a header[i] predstavlja listu djece čvora i.

#60:  Autor/ica: jabuka PostPostano: 18:07 pet, 13. 1. 2012
    —
ako bi mi mogao netko dati bilo kakav hint za zadatak, stvarno ne znam ni od kud poceti Sad

Sažmite m silazno sortiranih listi pomoću hrpe. Hrpa je prikazana pomoću pointera, a lista je vezana lista i veze su prikazane pomoću kursora. Pretpostavimo da lista sadrži elemente tipa char. Ne trebate implementirati sve funkcije iz atp LIST, nego samo one koje su vam potrebne u zadatku. Pretpostavite da ukupno ima najviše 10 lista, svaka ima najviše po 20 elemenata. Ideja: u definiciji hrpe zamijenite "≤" sa "≥".


Ulazni podaci: broj m, pa m sortiranih nizova znakova koji čine elemente sortiranih listi koje treba spojiti.
Izlazni podaci: nakon svake operacije ubacivanja i izbacivanja u hrpu ispisujte što se i iz koje liste ubacuje/izbacuje; na kraju ispišite i cijelu sažetu sortiranu listu.
Na primjer, za ulazne podatke:
3 HA UJ KIH
treba ispisati:
ubacujem H iz liste 1
ubacujem U iz liste 2
ubacujem K iz liste 3
izbacujem U iz liste 2
ubacujem J iz liste 2
izbacujem K iz liste 3
ubacujem I iz liste 3
izbacujem J iz liste 2
izbacujem I iz liste 3
ubacujem H iz liste 3
izbacujem H iz liste 1
ubacujem A iz liste 1
izbacujem H iz liste 3
izbacujem A iz liste 1
sortirana lista: UKJIHHA



Forum@DeGiorgi -> Strukture podataka i algoritmi


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8  Sljedeće  :| |:
Stranica 3 / 8.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin