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

Implementacija stoga preko pointera, funkcija PUSH
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
Izgubljen u prijevodu
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 11. 2007. (12:57:54)
Postovi: (A)16
Sarma = la pohva - posuda
-1 = 0 - 1

PostPostano: 13:18 pon, 19. 11. 2007    Naslov: Implementacija stoga preko pointera, funkcija PUSH Citirajte i odgovorite

typedef struct cell{

char element;

struct cell *next;

} celltype;

typedef celltype *STACK;

void PUSH(char x, STACK *S){

celltype *temp=*S;

*S=(celltype*)malloc(sizeof(celltype));

*S->element=x;

*S->next=temp;

}

Šalje mi pogrešku:
error: request for member ‘element’ in something not a structure or union
error: request for member ‘next’ in something not a structure or union

Da li zna tko u čemu je problem???
typedef struct cell{

char element;

struct cell *next;

} celltype;

typedef celltype *STACK;

void PUSH(char x, STACK *S){

celltype *temp=*S;

*S=(celltype*)malloc(sizeof(celltype));

*S->element=x;

*S->next=temp;

}

Šalje mi pogrešku:
error: request for member ‘element’ in something not a structure or union
error: request for member ‘next’ in something not a structure or union

Da li zna tko u čemu je problem???


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:47 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

U prioritetima operatora [tt]->[/tt] i [tt]*[/tt]: zamijeni [tt]*S->[/tt] sa [tt](*S)->[/tt] i trebalo bi raditi. 8)
U prioritetima operatora i *: zamijeni *S→ sa (*S)→ i trebalo bi raditi. Cool



_________________
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
Izgubljen u prijevodu
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 11. 2007. (12:57:54)
Postovi: (A)16
Sarma = la pohva - posuda
-1 = 0 - 1

PostPostano: 14:17 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Puno fala na brzom i jednostavnom odgovoru :D
Puno fala na brzom i jednostavnom odgovoru Very Happy


[Vrh]
Korisnički profil Pošaljite privatnu poruku
grrrga
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 15:30 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Em... sto ne bi trebalo biti s->next umjesto (*s)->next?
Em... sto ne bi trebalo biti s->next umjesto (*s)->next?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 15:52 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

[quote="grrrga"]Em... sto ne bi trebalo biti s->next umjesto (*s)->next?[/quote]

[tt]S[/tt] je pointer na [tt]STACK[/tt] koji je pointer na [tt]celltype[/tt] koji je [tt]struct[/tt]. :) Dakle, gornja deklaracija je ekvivalentna ovoj:
[tt]void PUSH(char x, celltype **S)[/tt]
grrrga (napisa):
Em... sto ne bi trebalo biti s→next umjesto (*s)→next?


S je pointer na STACK koji je pointer na celltype koji je struct. Smile Dakle, gornja deklaracija je ekvivalentna ovoj:
void PUSH(char x, celltype **S)



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


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 17:16 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

A zato moj program ne radi.... Hvala :wink:
A zato moj program ne radi.... Hvala Wink


[Vrh]
Korisnički profil Pošaljite privatnu poruku
grrrga
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 18:10 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Ali, svejedno ne radi:

typedef struct _cell{
char element;
struct _cell *next;
} celltype;

typedef celltype *stog;

void PUSH (char x, stog *s)
{
celltype *pom;
pom = *s;
*s = (celltype *) malloc (sizeof (celltype));
(*s)->element = x;
(*s)->next = pom;
}

Nakon alokacije se program srusi. Zasto? :cry:
Ali, svejedno ne radi:

typedef struct _cell{
char element;
struct _cell *next;
} celltype;

typedef celltype *stog;

void PUSH (char x, stog *s)
{
celltype *pom;
pom = *s;
*s = (celltype *) malloc (sizeof (celltype));
(*s)->element = x;
(*s)->next = pom;
}

Nakon alokacije se program srusi. Zasto? Crying or Very sad


[Vrh]
Korisnički profil Pošaljite privatnu poruku
matmih
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 12. 2006. (22:57:42)
Postovi: (1A4)16
Spol: muško
Sarma = la pohva - posuda
36 = 51 - 15
Lokacija: {Zg, De , Ri}

PostPostano: 18:27 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Probaj ovo:
[code:1]
void PUSH (char x, stog *s)
{
celltype *pom;
pom= (celltype *) malloc (sizeof (celltype));
pom->element = x;
pom->next = *s;
*s=pom;
}
[/code:1]
Probaj ovo:
Kod:

void PUSH (char x, stog *s)
{
celltype *pom;
pom= (celltype *) malloc (sizeof (celltype));
pom->element = x;
pom->next = *s;
*s=pom;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 18:45 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Meni se cini da bi trebalo raditi. :? Ovo sto je matmih napisao, u osnovi je isto. :)

Mozda je greska izvan funkcije, u nekoj inicijalizaciji ili negdje nakon [tt]PUSH()[/tt]-a? :-k

Recimo, sto vrati iduci program:
[code:1]int main(void) {
stog S;
S = NULL; // ekvivalent MAKE_NULL(&S)
PUSH('a', &S);
PUSH('b', &S);
printf("%c %c %d\n", S->element, S->next->element, (int)S->next->next);
return 0;
}[/code:1]
:?:
Meni se cini da bi trebalo raditi. Confused Ovo sto je matmih napisao, u osnovi je isto. Smile

Mozda je greska izvan funkcije, u nekoj inicijalizaciji ili negdje nakon PUSH()-a? Think

Recimo, sto vrati iduci program:
Kod:
int main(void) {
  stog S;
  S = NULL; // ekvivalent MAKE_NULL(&S)
  PUSH('a', &S);
  PUSH('b', &S);
  printf("%c %c %d\n", S->element, S->next->element, (int)S->next->next);
  return 0;
}

Question



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


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 19:15 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

void PUSH (char x, stog *s)
{
celltype *pom;
printf ("p\n");
pom = (celltype *) malloc (sizeof (celltype));
printf ("pp\n");
pom->element = x;
printf ("ppp\n");
pom->next = *s;
printf ("pppp\n");
*s = pom;
printf ("ppppp\n");
}

Stvarno ne kuzim zasto ne radi... Ispise sve p-ove osim zadnjeg (ppppp).
Ocito mu smeta ovaj *s = pom; ??? :cry:
void PUSH (char x, stog *s)
{
celltype *pom;
printf ("p\n");
pom = (celltype *) malloc (sizeof (celltype));
printf ("pp\n");
pom->element = x;
printf ("ppp\n");
pom->next = *s;
printf ("pppp\n");
*s = pom;
printf ("ppppp\n");
}

Stvarno ne kuzim zasto ne radi... Ispise sve p-ove osim zadnjeg (ppppp).
Ocito mu smeta ovaj *s = pom; ??? Crying or Very sad


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:56 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

:idea: Kako ti izgleda poziv od [tt]PUSH()[/tt] i kako su deklarirane varijable koje koristis u tom pozivu? :-k

Moja pretpostavka:
[code:1]stog *S;
...
PUSH(..., S);[/code:1]
bez da si alocirao memoriju za S. 8)
Idea Kako ti izgleda poziv od PUSH() i kako su deklarirane varijable koje koristis u tom pozivu? Think

Moja pretpostavka:
Kod:
stog *S;
...
PUSH(..., S);

bez da si alocirao memoriju za S. Cool



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


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 20:26 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Poziv za push:
stog *s;
......
PUSH (i_string [i], s); (to je unutar for petlje)
Poziv za push:
stog *s;
......
PUSH (i_string [i], s); (to je unutar for petlje)


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 20:42 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Dakle, nisi alocirao memoriju za [tt]s[/tt]. 8)

Treba ti ili
[tt]s = (stog*)malloc(sizeof(stog));[/tt] na pocetku i [tt]free(s);[/tt] na kraju
ili trebas [tt]stog *s;[/tt] zamijeniti sa [tt]stog s;[/tt] i onda srediti pozive (vidi moj primjer par postova gore). 8)
Dakle, nisi alocirao memoriju za s. Cool

Treba ti ili
s = (stog*)malloc(sizeof(stog)); na pocetku i free(s); na kraju
ili trebas stog *s; zamijeniti sa stog s; i onda srediti pozive (vidi moj primjer par postova gore). Cool



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


Pridružen/a: 18. 11. 2006. (12:15:43)
Postovi: (1F)16
Sarma = la pohva - posuda
-3 = 2 - 5

PostPostano: 21:59 pon, 19. 11. 2007    Naslov: Citirajte i odgovorite

Hvala na pomoci, sad ce valjda radit :)
Hvala na pomoci, sad ce valjda radit Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
napraviculom
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 02. 2007. (16:40:37)
Postovi: (71)16
Spol: muško
Sarma = la pohva - posuda
14 = 16 - 2
Lokacija: Scranton

PostPostano: 22:02 pet, 23. 11. 2007    Naslov: Citirajte i odgovorite

moze li netko objasnit zasto u [url=http://web.math.hr/nastava/spa/files/skripta.pdf]skripti[/url] (implementacija liste pomocu pokazivaca) funkcije INSERT i DELETE nemaju treci argument (samu listu)?
nije li za atp list funkcija INSERT zadana s:
[code:1]void INSERT(elementtype x, position p, LIST *L)[/code:1]
:?:
moze li netko objasnit zasto u skripti (implementacija liste pomocu pokazivaca) funkcije INSERT i DELETE nemaju treci argument (samu listu)?
nije li za atp list funkcija INSERT zadana s:
Kod:
void INSERT(elementtype x, position p, LIST *L)

Question



_________________
"I'm the operator with my pocket calculator"
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pecina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23)
Postovi: (157)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
62 = 85 - 23
Lokacija: Happily traveling through space since 1986!

PostPostano: 1:21 sub, 24. 11. 2007    Naslov: Citirajte i odgovorite

[quote="napraviculom"]moze li netko objasnit zasto u [url=http://web.math.hr/nastava/spa/files/skripta.pdf]skripti[/url] (implementacija liste pomocu pokazivaca) funkcije INSERT i DELETE nemaju treci argument (samu listu)?
nije li za atp list funkcija INSERT zadana s:
[code:1]void INSERT(elementtype x, position p, LIST *L)[/code:1]
:?:[/quote]Ja čitam i vidim na stranici 10:
void INSERT (elementtype x, position p, LIST *L
ptr){

void DELETE (position p, LIST *L ptr) {
:roll:
napraviculom (napisa):
moze li netko objasnit zasto u skripti (implementacija liste pomocu pokazivaca) funkcije INSERT i DELETE nemaju treci argument (samu listu)?
nije li za atp list funkcija INSERT zadana s:
Kod:
void INSERT(elementtype x, position p, LIST *L)

Question
Ja čitam i vidim na stranici 10:
void INSERT (elementtype x, position p, LIST *L
ptr){

void DELETE (position p, LIST *L ptr) {
Rolling Eyes



_________________
-- space available for rent --
[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