Mala pomoc

1

Mala pomoc

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.
offline
  • pixxel  Male
  • 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 Wink
(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...



offline
  • 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

offline
  • pixxel  Male
  • Legendarni građanin
  • Pridružio: 21 Jun 2005
  • Poruke: 9091
  • Gde živiš: Tu i tamo...

@bNasty:
a sta onda radi tekuci=niz?????
nista???

offline
  • DXM 
  • Novi MyCity građanin
  • Pridružio: 18 Okt 2004
  • Poruke: 19

Pa nista. Samo prodje kroz listu kao sto je rekao bNasty izadje iz funkcije i vidimo se ...

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

offline
  • meka  Male
  • 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.

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23208
  • Gde živiš: Niš

fali return...
da funkcija vrati rezultat...

offline
  • 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

offline
  • 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.

Ko je trenutno na forumu
 

Ukupno su 581 korisnika na forumu :: 1 registrovan, 1 sakriven i 579 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 4channer