prvi kolokvij
Select messages from
# through # FAQ
[/[Print]\]
Idite na Prethodno  1, 2, 3  :| |:
Forum@DeGiorgi -> Strukture podataka i algoritmi

#41:  Autor/ica: Shirohige PostPostano: 15:19 čet, 21. 11. 2013
    —
Hvala aangelinaaa Very Happy

anamarie (napisa):
3.zadatak
http://web.math.pmf.unizg.hr/nastava/spa/kolokviji/2012/SPA%20-%202012%20-%20kolokvij1%20-%20zadaci.pdf


Ja sam dobio [tex] \omega_1 = 91 [/tex] tj. prvo ignoriraš ovu listu s oznakom [tex] \omega_1 [/tex] i gledaš samo ove ostale s konkretnim vrijednostima. (7, 10, 4, 16, 5)

Poredaš ih po veličini:
(4, 5, 7, 10, 16) i onda se gradi stablo Huffmanovim algoritmom:

Tj. uzmemo dva čvora s najmanjim oznakama (4 i 5) i napravimo stablo tako da su 4 i 5 djeca, a roditelj tj. korijen je zbrog oznaka 4+5=9

sada imamo:
 9 7 10 16
/ \
4 5

Opet uzmemo dva najmanja čvora (9 i 7) ...
pa nam ostane 16, 10, 16, opet dva najmanja (10 i 16) pa nam ostaje : 26 i 16 i zadnji puta: 42

U zadatku kaže da je minimalni broj operacija 133 pa je [tex] \omega_1 = 91 [/tex].

Jel ide to tako ili ?

#42:  Autor/ica: nuclear PostPostano: 15:29 čet, 21. 11. 2013
    —
Iako mi se čini da uzalud tražim pomoć.....

Ovo je moj kod za 2. zadatak, ne mogu doista shvatiti gdje je greška, jer je sitna (ali ne manje bitna Very Happy). Radi se o redu 81, kaže da ne valja tu....

http://web.math.pmf.unizg.hr/nastava/spa/files/zadaci_za_vjezbu_kolokvij1.pdf

Kod:

void SetAndSort(List *L, int idprocesa, int prioritet){
position q, p, maks;

for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L))
    if(LiRetrieve(q,*L).ident==idprocesa){
        LiRetrieve(q,*L).prior=prioritet;
        break;}

for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L)){
    maks=q;
    for(p=LiNext(q,*L); p!=LiEnd(*L); p=LiNext(p,*L)){
        if(LiRetrieve(p,*L).prior > prioritet) maks=p;}
    if(maks!=q){
        elementtype temp;
        temp=LiRetrieve(q,*L);
        LiDelete(q,L);
        LiInsert(LiRetrieve(maks,*L), q, L);
        LiInsert(temp, maks, L);} }
}

#43:  Autor/ica: frutabella PostPostano: 15:40 čet, 21. 11. 2013
    —
Shirohige (napisa):
Hvala aangelinaaa Very Happy

anamarie (napisa):
3.zadatak
http://web.math.pmf.unizg.hr/nastava/spa/kolokviji/2012/SPA%20-%202012%20-%20kolokvij1%20-%20zadaci.pdf


Ja sam dobio [tex] \omega_1 = 91 [/tex] tj. prvo ignoriraš ovu listu s oznakom [tex] \omega_1 [/tex] i gledaš samo ove ostale s konkretnim vrijednostima. (7, 10, 4, 16, 5)

Poredaš ih po veličini:
(4, 5, 7, 10, 16) i onda se gradi stablo Huffmanovim algoritmom:

Tj. uzmemo dva čvora s najmanjim oznakama (4 i 5) i napravimo stablo tako da su 4 i 5 djeca, a roditelj tj. korijen je zbrog oznaka 4+5=9

sada imamo:
 9 7 10 16
/ \
4 5

Opet uzmemo dva najmanja čvora (9 i 7) ...
pa nam ostane 16, 10, 16, opet dva najmanja (10 i 16) pa nam ostaje : 26 i 16 i zadnji puta: 42

U zadatku kaže da je minimalni broj operacija 133 pa je [tex] \omega_1 = 91 [/tex].

Jel ide to tako ili ?



I ja sam dobila rjesenje 91. Ma da sam ja isla na drukciji nacin, tako da sam pretpsotavila da je w1 najmanja oznaka. Ma da mi to nesto i nema smilsa, jer onda w1 moze biti 0,1,2,3. A na kraju mi ispadne da je 91.

#44:  Autor/ica: Shirohige PostPostano: 15:49 čet, 21. 11. 2013
    —
nuclear (napisa):
Iako mi se čini da uzalud tražim pomoć.....

Ovo je moj kod za 2. zadatak, ne mogu doista shvatiti gdje je greška, jer je sitna (ali ne manje bitna Very Happy). Radi se o redu 81, kaže da ne valja tu....

http://web.math.pmf.unizg.hr/nastava/spa/files/zadaci_za_vjezbu_kolokvij1.pdf

Kod:

void SetAndSort(List *L, int idprocesa, int prioritet){
position q, p, maks;

for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L))
    if(LiRetrieve(q,*L).ident==idprocesa){
        LiRetrieve(q,*L).prior=prioritet;
        break;}

for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L)){
    maks=q;
    for(p=LiNext(q,*L); p!=LiEnd(*L); p=LiNext(p,*L)){
        if(LiRetrieve(p,*L).prior > prioritet) maks=p;}
    if(maks!=q){
        elementtype temp;
        temp=LiRetrieve(q,*L);
        LiDelete(q,L);
        LiInsert(LiRetrieve(maks,*L), q, L);
        LiInsert(temp, maks, L);} }
}



Možda pomogne moj kod:
http://pastebin.com/QWXAbb7W

Si sigurna da si dobro implementirala ostale funkcije? Jer ovdje nam je elementtype struct, a lista je skupina structova:
Kod:
#define MAXLENGTH 100

typedef int position;

typedef struct
{
    int identifikator;
    int prioritet;
    char vlasnik[50];
    char vrijeme[20];

} proces;

typedef proces elementtype;

typedef struct
{
    elementtype elements[MAXLENGTH];
    int last;

} List;


Npr. , moja funkcija LiInsert:
http://pastebin.com/XmPAzYMD

#45:  Autor/ica: nuclear PostPostano: 16:04 čet, 21. 11. 2013
    —
Evo da imam imalo volje, proučavala bi tvoj kod....ali nemam, pa te molim da pogledaš moj, problem je samo u jednom redu, JEDNOM REDU Very Happy ne da mi se gledat i uspoređivat što smo drugačije i tako to Ehm?

Added after 3 minutes:

[quote="Shirohige"]
nuclear (napisa):
...

Npr. , moja funkcija LiInsert:
http://pastebin.com/XmPAzYMD


nemoj mi uzet za zlo, ali mislim da ne smijemo mijenjati implementacije zbog neke funkcije tako da mislim da to nije ok, taj tvoj kod :O

...da još dodam, ne znam u čemu je bio točno problem pošto nisam kopirala s neke stranice, ali ispada da je bilo "nedozvoljenih znakova", dakle ok mi je kod, pardonček Smile

#46:  Autor/ica: Shirohige PostPostano: 16:27 čet, 21. 11. 2013
    —
Added after 3 minutes:

Shirohige (napisa):
nuclear (napisa):
...

Npr. , moja funkcija LiInsert:
http://pastebin.com/XmPAzYMD


nemoj mi uzet za zlo, ali mislim da ne smijemo mijenjati implementacije zbog neke funkcije tako da mislim da to nije ok, taj tvoj kod :O

...da još dodam, ne znam u čemu je bio točno problem pošto nisam kopirala s neke stranice, ali ispada da je bilo "nedozvoljenih znakova", dakle ok mi je kod, pardonček Smile


Pa piše u skripti da je to jedna od "mogućih" implementacija, nas zanimaju samo funkcije same po sebi, a ne način na koji su implementirane, a ovise i o samom elementtype-u, recimo, ti imaš sljedeći kod:
Kod:
for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L))
    if(LiRetrieve(q,*L).identifikator==idprocesa){
        LiRetrieve(q,*L).prioritet=prioritet;
        break;}


3. linija glasi:
Kod:
LiRetrieve(q,*L).prioritet=prioritet;


A ako pogledaš u šalabahteru, LiRetrieve samo vraća element i argument mu je lista L, a ne *L (u funkciji mu dakle šalješ *L, a ne &(*L) pa ne možeš mijenjati tako komponentu elementa.

tj.
Kod:
elementtype LiRetrieve(position P, List L)
, a ne
Kod:
elementtype LiRetrieve(position P, List* L)


odnosno u funkciji
Kod:
elementtype LiRetrieve(position P, List* L)
, a ne
Kod:
elementtype LiRetrieve(position P, List** L)


Možda sam u krivu Confused , ali mislim da sam samo prilagodio funkcije tako da barataju s elementtype-om struct, a bitna nam je jedino funkcija
Kod:
void SetAndSort (List* listap, int idprocesa, int prioritet)
koju sam čini mi se sklepao u skladu s definicijama LiInsert, LiRetrieve, ... tj. neovisno kako one rade u pozadini.

Zadnja promjena: Shirohige; 16:41 čet, 21. 11. 2013; ukupno mijenjano 1 put.

#47:  Autor/ica: nuclear PostPostano: 16:38 čet, 21. 11. 2013
    —
Shirohige (napisa):

Pa piše u skripti da je to jedna od "mogućih" implementacija, nas zanimaju samo funkcije same po sebi, a ne način na koji su implementirane, a ovise i o samom elementtype-u, recimo, ti imaš sljedeći kod:
Kod:
for(q=LiFirst(*L); q!=LiEnd(*L); q=LiNext(q,*L))
    if(LiRetrieve(q,*L).identifikator==idprocesa){
        LiRetrieve(q,*L).prioritet=prioritet;
        break;}


...


onda ok Smile

#48:  Autor/ica: ipeula PostPostano: 17:01 čet, 21. 11. 2013
    —
Shirohige (napisa):
Hvala aangelinaaa Very Happy

anamarie (napisa):
3.zadatak
http://web.math.pmf.unizg.hr/nastava/spa/kolokviji/2012/SPA%20-%202012%20-%20kolokvij1%20-%20zadaci.pdf


Ja sam dobio [tex] \omega_1 = 91 [/tex] tj. prvo ignoriraš ovu listu s oznakom [tex] \omega_1 [/tex] i gledaš samo ove ostale s konkretnim vrijednostima. (7, 10, 4, 16, 5)

Poredaš ih po veličini:
(4, 5, 7, 10, 16) i onda se gradi stablo Huffmanovim algoritmom:

Tj. uzmemo dva čvora s najmanjim oznakama (4 i 5) i napravimo stablo tako da su 4 i 5 djeca, a roditelj tj. korijen je zbrog oznaka 4+5=9

sada imamo:
 9 7 10 16
/ \
4 5

Opet uzmemo dva najmanja čvora (9 i 7) ...
pa nam ostane 16, 10, 16, opet dva najmanja (10 i 16) pa nam ostaje : 26 i 16 i zadnji puta: 42

U zadatku kaže da je minimalni broj operacija 133 pa je [tex] \omega_1 = 91 [/tex].

Jel ide to tako ili ?


133 je ukupan broj operacija, pa onda ima ona formula suma(po Li) pi*wi, i onda pogađas, uzmes recimo w1=1 pa se dobije suma 101 ili tako nesto, i tako uzmimas dalje, recimo 10, pa je suma 129 i onda vidis da je tu negdje blizu, tako to ide, bar koliko sam ja skuzio Smile i rezultat je w1=12

#49:  Autor/ica: Shirohige PostPostano: 17:48 čet, 21. 11. 2013
    —
ipeula (napisa):

133 je ukupan broj operacija, pa onda ima ona formula suma(po Li) pi*wi, i onda pogađas, uzmes recimo w1=1 pa se dobije suma 101 ili tako nesto, i tako uzmimas dalje, recimo 10, pa je suma 129 i onda vidis da je tu negdje blizu, tako to ide, bar koliko sam ja skuzio Smile i rezultat je w1=12


E to, hvala! Very Happy

#50:  Autor/ica: frutabella PostPostano: 19:12 čet, 21. 11. 2013
    —
Moze ideja za prvi zadatak iz 2012.?

Kako ubacivati na dno stoga?

#51:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 20:01 čet, 21. 11. 2013
    —
frutabella (napisa):
Moze ideja za prvi zadatak iz 2012.?
Kako ubacivati na dno stoga?


Pise da hoce rekurziju, dakle:
- Ako je stog prazan, dodas novi element i izadjes van iz funkcije.
- Inace skines element s vrha stoga (zapamtis vrijednost u vatrijabli, npr. x), pozoves rekurziju, i onda vratis x na stog.

#52:  Autor/ica: frutabella PostPostano: 20:28 čet, 21. 11. 2013
    —
Imala sam tu ideju u glavi, ali kad si pocnem crtati pogubim se u rekurziji. Da li je ovako ok:


Kod:
void PushBottom (element x, Stack *S)
{

     elementtype y;

if(StEmpty(*S)==1)
{
    StPush(x,S);
    return;
}

else
{
     y=StTop(S);
     StPop(S);
     PushBottom(x,S);
     StPush(y,S);
}

return;

}





#53:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 20:38 čet, 21. 11. 2013
    —
Izgleda mi O.K. Sto ne isprobas?

Usput, ako StEmpty(*S) vraca samo 0 ili 1, onda mozes pisati
if (StEmpty(*S))
umjesto
if(StEmpty(*S)==1).

#54:  Autor/ica: frutabella PostPostano: 20:57 čet, 21. 11. 2013
    —
http://web.math.pmf.unizg.hr/nastava/spa/kolokviji/2012/SPA%20-%202012%20-%20kolokvij1%20-%20zadaci.pdf

4. zad pod a)

(P.s. Nemam trenutno vremena isprobavati na compu)

Jel ovo ok:


Kod:
 BTREE jedno (int n)
{

    int i;
node m, c, d, temp;
labeltype l=1;
Binary Tree T, TL;

m=BiCreate(L,TL,LAMDA, &T);
c=BiLeftChild(m, T);
BiChangeLabel(l, c, &T);

   for(i=2; i<n; ++i)
{
   d=BiInsertRightChild(l, c, &T);
temp=d;
c=temp;

}


return T;

}



[/code]

#55:  Autor/ica: Shirohige PostPostano: 16:52 sri, 4. 12. 2013
    —
Zamolio bih, ako je moguće, za upload prvog kolokvija.







EDIT:

Hvala!


Zadnja promjena: Shirohige; 23:39 čet, 5. 12. 2013; ukupno mijenjano 1 put.

#56:  Autor/ica: kslaven PostPostano: 22:55 čet, 5. 12. 2013
    —
Shirohige (napisa):
Zamolio bih, ako je moguće, za upload prvog kolokvija.


Na webu je,

http://web.math.pmf.unizg.hr/nastava/spa/kolokviji/2013/SPA-2013-14-kolokvij1.pdf.



Forum@DeGiorgi -> Strukture podataka i algoritmi


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

Idite na Prethodno  1, 2, 3  :| |:
Stranica 3 / 3.

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