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

C++ i povezane liste

[es] :: C/C++ programiranje :: C++ i povezane liste

[ Pregleda: 4854 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.243.EUnet.yu



Profil

icon C++ i povezane liste16.05.2003. u 00:59 - pre 254 meseci
Posto trenutno citam knjigu C++ za linux i cisto radi vezbe sam

napisao kod koji je u stvari povezana lista, sa cvorom koji sadrzi

celobrojne podatke. Imam Head cvor i Tail cvor koji su neka vrsta

ogranicavaca. Iz klase Node su izvedene Head(bez podataka), Tail(bez

podataka), InternalNode(sa podacima). Ovo je naravno skolski primer

jednosmerne povezane liste. Program se kompajlira ali u

toku izvrsavanja programa on pri unosu podataka u listu se zablokira.

Dacu vam onaj deo koda koji se izvrsava do prekida. Posto nemam bas

mnogo iskustva u programiranju, nemogu da nadjem gresku ma koliko se

trudio.

ll.InsertNode(value); // Objekat Klase List poziva funkciju za unosenje

//podataka iz main funkcije

void List::InsertNode (int value)
{
itsHeadNode->InsertNode(value);//Objekat Klase Head poziva funkciju

za //unosenje podataka
}

Node* HeadNode::InsertNode (int value)
{
itsNext = itsNext->InsertNode(value); //itsNext je pointer na sledeci
//Node u listi
return this;
}

Node* InternalNode::InsertNode (int value)
{
if (value >= itsValue)
{
Node* bigNode= new InternalNode (value, this);
return bigNode;
}
else
{
itsNext = itsNext->InsertNode(value);
return this;
}
}

InternalNode::InternalNode (int value, Node* next)
itsNext(next),
itsValue(value)
{}

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: C++ i povezane liste16.05.2003. u 17:07 - pre 254 meseci
Aploaduj sors molim te, jer ovu sumu znakoga ne mogu da gledam - bole me oci...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.77.EUnet.yu



Profil

icon Re: C++ i povezane liste16.05.2003. u 23:40 - pre 254 meseci
Ovde je upload!

[Ovu poruku je menjao stale85 dana 17.05.2003. u 10:20 GMT]
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
Prikačeni fajlovi
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: C++ i povezane liste17.05.2003. u 01:02 - pre 254 meseci
"Stanislave..." (Ako si gledao Radovana III)

Kad sam mislio na upload, mislio sam da sors zapakuješ u .zip i PRILEPIŠ uz onu tvoju (prvu) poruku! :)

Evo gledah ovo malo, sa listama se ovako ne radi u praksi (ili ja nemam pojma o osnovnim strukturama podataka).

Recimo TailNode je, po meni, totalno nepotrebna klasa, jer uglavnom u implementaciji jednostruko ili dvostruko povezanih listi programer unapred ima u vidu da će krajnji čvorovi imati pokazivač "next" koji referiše NULL, jel tako?

Ali, da ne skrećem sa teme, ovu raspravu možemo da sprovedemo kasnije, kad pronađemo problem u tvom kodu. Da bismo to odradili što pre molim te prilepi kod, da budem iskren mrzi me da se mučim sa GNU ident-om da od ove "šume" dole imam u svom editoru lako čitljiv kod. :)

Hajde pa se čitamo...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: C++ i povezane liste17.05.2003. u 01:19 - pre 254 meseci
e leko, postao si aljkav.. ;)

samo citiraj poruku, i dobićeš indentovan kod..
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.salonica.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: C++ i povezane liste17.05.2003. u 01:31 - pre 254 meseci
TailNode ne bi ni trebala biti klasa nego samo jedan od clanova linkedlist.h (pointer).

U samom node.h treba da postoji deklarisana dva pointera data i next. Data bi trebala da bude templejtovanog tipa, a next uvek da pokazuje na NULL u samom konstruktoru.
Sto se tice linkedlist.h, tail bi trebalo da bude pointer na zadnji node u listi, a head na prvi (logicno?!).
Za dodavanje, mozda metod append() ...
Za ubacivanje elemenata negde u listu (citaj SREDINU) trebalo bi da je predjes celu sa dva pointera, recimo currNode i nextNode, pa gledaj na osnovu cega ubacujes node ... (moze biti recimo prioritet).

Enivej, ovo su elementarne stvari stvarno ...
If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: C++ i povezane liste17.05.2003. u 01:54 - pre 254 meseci
T3chX, jesu elementarne, ali neko ni njih ne zna (dok ih ne nauči) :)

Elem Stanislave kućo, objasni ovo parče koda - nešto ga ne razumem baš najboljšije, a ako ga dobro razumem, onda mislim da "u tom zecu leži grm".

Code:

Node *
HeadNode::InsertNode (int value)
{
  itsNext = itsNext->InsertNode (value);
  return this;
}


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.185.EUnet.yu



Profil

icon Re: C++ i povezane liste17.05.2003. u 10:19 - pre 254 meseci
ItsNext je pointer na sledeci objekat u listi. On poziva funkciju InsertNode koja za argument ima celobrojnu vrednost i vraca pointer na objekat tipa Node. HeadNode ne bi trebao da vraca vrednost ali to radi samo zato sto se izvodi iz apstraktne klase Node i ako taj metod ne bi zaobisao i on sam bi postao apstraktna klasa i ne bi mogao da pravim objekat tipa HeadNode(tako je uradjeno u primeru u knjizi). Mene zanima da li je "itsNext = itsNext->InsertNode(value);" regularno dodeljivanje. Ja pretpostavljam da jeste jer se kompajler nije bunio.
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: C++ i povezane liste17.05.2003. u 21:34 - pre 254 meseci
Iz "perspektive" kompajlera taj kod je regularan i zato se kompajler ne buni, medjutim taj kod mislim da je pogresan, hajde pronadji zasto. Ili ako si siguran, dokazi da je kod ispravan/korektan.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.218.EUnet.yu



Profil

icon Re: C++ i povezane liste17.05.2003. u 23:46 - pre 254 meseci
Izmenio sam sve kao sto ste mi rekli i sve je lepo proradilo.
Hvala vam na trudu i pomoci.

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
 
Odgovor na temu

[es] :: C/C++ programiranje :: C++ i povezane liste

[ Pregleda: 4854 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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