Poslao: 28 Jun 2005 10:09
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 67
- Gde živiš: Novi Beograd
|
AKo moze neko da mi pomogne da objasni ovaj zadatak:
Sta radi sledeca finkcija koja za argument ima pokazivac na element otvorene liste
typedef struct elem {int broj; struct elem *sled;} Elem;
void StaRadi (elem*niz)
{
elem *tekuci=niz;
while (tekuci) tekuci=tekuci->sled;
tekuci=niz;
}
Ponudjeni odgovori su:
brise listu
pretrazuje listu
ne radi nista
nevraca nikakvu promenu, sve promene su samo unutar funkcija
vraca poslednji element liste
vraca pokazivac poslednjeg elementa liste
pravi kruznu listu
duplira listu tako sto doda istu listu na kraju liste
nista od ponjudjenog
Ovo je bio primer jednog ispitnog zadatka. Puno pozdrava
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 28 Jun 2005 13:26
|
offline
- pixxel

- Legendarni građanin
- Pridružio: 21 Jun 2005
- Poruke: 9091
- Gde živiš: Tu i tamo...
|
Da vidimo:
typedef struct elem {int broj; struct elem *sled;} Elem;
void StaRadi (elem*niz)
{
1. elem *tekuci=niz;
2. while (tekuci) tekuci=tekuci->sled;
3. tekuci=niz;
}
1. tekuci elemenat dobija adresu niza, odnosno uzima prvi element niza(strukture).
2. dok god postoji tekuci element strukture(dok god postoji element u nizu), uzmi sledeci. Znaci, na kraju dolazi na kraj niza.
3. tekuci, u ovom slucaju poslednji element niza dobija vrednost celog niza...E sad, nisam siguran, ali mislim da ili duplira listu tako sto doda istu listu na kraju liste, ili pravi kruznu listu. Mogla bi da bude i kruzna lista, ali posto je nikad nisam radio, ne'am pojma... Po nekoj zdravoj logici, da je 3. glasio tekuci=*niz, bila bi kruzna, ovako...ipak mi se cini da se doda lista na kraj liste...
P.S. o's da vidis moje ispitne zadatke iz objektnog programiranja (Visa elektrotehnicka...) ovo bi bila boza u odnosu na ono
(Po stilu pisanja zadatka, kao da ga je Laslo Kraus pisao...)
P.P.S. Zar ovaj red:
typedef struct elem {int broj; struct elem *sled;} Elem;
ne bi trebao ovako:
typedef struct elem {int broj; elem *sled;} Elem;
Ako 2 puta navedes struct elem dobices gresku redefinition: basic types ili slicnu...
|
|
|
|
Poslao: 28 Jun 2005 19:40
|
offline
- bNasty

- Građanin
- Pridružio: 17 Mar 2004
- Poruke: 293
- Gde živiš: UK
|
Ako je ova funkcija pravilno prepisana, onda ne radi bash nishta. Prodje kroz listu i to je to
|
|
|
|
Poslao: 28 Jun 2005 20:15
|
offline
- pixxel

- Legendarni građanin
- Pridružio: 21 Jun 2005
- Poruke: 9091
- Gde živiš: Tu i tamo...
|
@bNasty:
a sta onda radi tekuci=niz?????
nista???
|
|
|
|
Poslao: 28 Jun 2005 20:36
|
offline
- Pridružio: 18 Okt 2004
- Poruke: 19
|
Pa nista. Samo prodje kroz listu kao sto je rekao bNasty izadje iz funkcije i vidimo se ...
|
|
|
|
Poslao: 28 Jun 2005 23:32
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 67
- Gde živiš: Novi Beograd
|
pixxel
Ovo mije ortak rekao da postavim posto on nije znao a koliko se secam on je ovo upravo ucio iz knjige Lasla Krausa Hvala za pomoc i pno pozdrava
|
|
|
|
Poslao: 29 Jun 2005 02:54
|
offline
- meka

- Počasni građanin
- Pridružio: 06 Avg 2003
- Poruke: 811
- Gde živiš: Novi Sad / Vojvodina
|
Pa najverovatnije fali jos nesto tu, jer je kod ovako glup nao ponoc.
|
|
|
|
Poslao: 29 Jun 2005 03:33
|
offline
- Peca

- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
fali return...
da funkcija vrati rezultat...
|
|
|
|
Poslao: 29 Jun 2005 06:36
|
offline
- Bone Collector

- Legendarni građanin
- Pridružio: 18 Apr 2003
- Poruke: 5001
- Gde živiš: Beograd
|
tacan odgovor je ovo i tu ne fali nista
duplira listu tako sto doda istu listu na kraju liste
|
|
|
|
Poslao: 29 Jun 2005 07:35
|
offline
- bobby

- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Ovako bi pravilo kruznu listu:
typedef struct elem {int broj; *sled;} Elem;
void StaRadi (elem*niz)
{
elem *tekuci=niz;
while (tekuci) tekuci=tekuci->sled;
tekuci->sled=niz;
}
@Bone
Ne dodaje listu na kraj liste jer su pozicije u memoriji ostale iste, tj. nisu ubaceni novi elementi.
@all
taj primer ce samo da izbaci gresku kao sto je pixxel rekao. Ukoliko se greska popravi, onda funkcija iterira kroz celu listu i na kraju samo postavi da tekuci pokazuje opet na pocetak liste, nista vise.
|
|
|
|