Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pokazivaci i liste

[es] :: Pascal / Delphi / Kylix :: Pokazivaci i liste

[ Pregleda: 2384 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko Simulak
123456adada

Član broj: 272268
Poruke: 104



+1 Profil

icon Pokazivaci i liste28.02.2012. u 21:44 - pre 147 meseci
Pozdav :), radim sa pokazivacima u paskalu, tacnije sada su dvostruko povezane liste, kruzne liste i stek. E sad, buni me to kako da ubacim npr. neki novi element(broj) ispred/iza trenutnog u listi. Profesorica je savetovala da crtamo te pokazivace, al meni se to sad sve izmesalo, ne znam gde koja strelica ide... Kod da ubacim iza trenutnog u listi bi trebalo da je ovaj:
Code:
 
novi^.sl:=tr^.sl;
novi|^.pr:=tr;    
tr^.sl^.pr:=novi;  << ?
tr^.sl:=novi;

Probao sam da ubacim u proceduru ovaj kod, i npr. ako mi je tr=2, da se iza doda 5...ali ne funkcionise...Moze li malo pomoci? :D
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Pokazivaci i liste28.02.2012. u 22:09 - pre 147 meseci
Pod pretpostavkom da je tr trenutni (zadnji) element u listi:

Ispred:

Code:

tr^.pr^.sl := novi;
novi^.pr := tr^.pr;
novi^.sl := tr;
tr^.pr := novi;


Iza:

Code:

novi^.pr := tr;
tr^.sl := novi;


Pisem kod iz glave, ali bi trebalo da je ovako.
 
Odgovor na temu

Marko Simulak
123456adada

Član broj: 272268
Poruke: 104



+1 Profil

icon Re: Pokazivaci i liste28.02.2012. u 22:20 - pre 147 meseci
Da, tako je i meni ovde samo sto kod ovog iza ima jos 2 reda...Naravno mogu naucitu nz...napamet, al hteo bih da skontam, pa me buni sta oznacava taj "tr^.pr^.sl"?? Hvala :)
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Pokazivaci i liste28.02.2012. u 22:38 - pre 147 meseci
Svaki element ima pokazivac na svoj prethodni i sledeci element i ti njih prilikom ubacivanja novog elementa trebas da promenis tako da pokazuju na (novi) ispravni element.

Recimo da imas listu A B C i hoces da ubacis element D tako da lista posle ubacivanja bude A B D C.

Pre ubacivanja, B.sl pokazuje na C, C.pr pokazuje na B.

Prilikom ubacivanja trebas ovo da izmenis u listi:

1) B.sl treba da pokazuje na D
2) D.pr na B
3) D.sl na C
4) C.pr na D.

To radis ovako:

Code:

tr^.pr^.sl := novi; // 1
novi^.pr := tr^.pr; // 2
novi^.sl := tr; // 3
tr^.pr := novi; // 4


Jednostavno zamisli listu elemenata u glavi, kada ubacis novi element negde izmedju njih, trebas da mu setujes pokazivace na prethodni/sledeci element koji se nalaze oko njega, kao i da elementu pre njega promenis pokazivac na sledeci element (koji treba da pokazuje na novi element) i elementu posle njega promenis pokazivac na prethodni element, da pokazuje takodje na novi element.
 
Odgovor na temu

Marko Simulak
123456adada

Član broj: 272268
Poruke: 104



+1 Profil

icon Re: Pokazivaci i liste28.02.2012. u 22:43 - pre 147 meseci
Mhm..znaci tako..bilo mi je jasno da treba da podesim pokazivace sl,pr ali sam gledao u pogresan sto se tice trenutnog, pa me je to bunilo...Hvala :D
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pokazivaci i liste

[ Pregleda: 2384 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.