[ gogi100 @ 30.11.2004. 11:37 ] @
Poceo sam da citam knjigu C++ za 21 dan od SAMS-a i stigao sam do jednog primera iz knjige koji opisuje temu povezanih lista,ali mi nije bas najjasniji,pa ako moze neko objasnjenje i neki jednostavniji primer.Kod je sledeci: Code: #include<iostream.h> class CAT { public: CAT(){itsAge=1;} CAT(int age):itsAge(age){} ~CAT(){}; int GetAge(){return itsAge;} private: int itsAge; }; class Node { public: Node (CAT*); ~Node(); void SetNext(Node*node){itsNext=node;} Node*GetNext()const{return itsNext;} CAT*GetCat()const{return itsCat;} void Insert(Node*); void Display(); private: CAT*itsCat; Node*itsNext; }; Node::Node(CAT*pCat): itsCat(pCat),itsNext(0){} Node::~Node() { cout<<"Deleting node...\n"; delete itsCat; itsCat=0; delete itsNext; itsNext=0; } void Node::Insert(Node*newNode) //moze li objasnjenje ove funkcije? { if(!itsNext) //ovo mi nije jasno? itsNext=newNode; //i ovo? else int NextCatsAge=itsNext->GetCat()->GetAge(); int NewAge=newNode->GetCat()->GetAge(); int ThisNodeAge=itsCat->GetAge(0); if(NewAge>=ThisNodeAge && NewAge<NextCatsAge) //nije mi jasan ovaj uslov newNode->SetNext(itsNext); itsNext=newNode; } else itsNext->Insert(newNode); } void Node::Display() { if(itsCat->GetCat()>0) { cout<<"MyCat is: "; cout<<itsCat->GetAge()<<"years old\n"; } if(itsNext) itsNext->Diplay(); } int main() { Node*pNode=0; CAT*pCat=new CAT(0) //u knjizi pise da je ovo lazni objekat zasto? int age; Node*pHead=new Node(pCat); //zasto se formira ovaj pokazivac na Node? while(1) { cout<<"New cat's age? (0 to quit): "; cin>>age; if(!age) break; pCat= new CAT(age); pNode=new Node (pCat); pHead->Insert(pNode); } pHead->Display(); delete pHead; cout<<"Exiting...\n\n"; return 0; } [Ovu poruku je menjao Dragi Tata dana 30.11.2004. u 20:50 GMT+1] |