title image


Smiley Re: verkettete Liste implementieren
Da Du nicht schreibs was genau nich läuft spekuliere ich mal vor mir hin :-)



Entweder ich seh das Falsch oder Deine int-Variable nKey is global definiert und nich in der Klasse.



Dann würde ich den next-Pointer aus der Klasse CChainList in die Klasse CElement Verschieben und die Klasse CChainList mit dem Anhängen verantwortlich machen. Sprich Du benutzt nicht den Pointer von next (cc->next) um damit ein neues element anzuhängen sondern erstellst die Klasse CChainList und über diese hängst du an.





//CElement.h **************

class CElement

{

int nKey;

public:

CElement *next;

CElement(int _n);

int getKey();

};

//CElement.cpp ***************



CElement::CElement(int _nKey)

{

nKey = _nKey;

next = NULL;

}

CElement::getKey()

{

return(nKey);

}

//CChainList.h ****************

class CChainList

{

public: CElement *Head; //Pointer auf das erste Element

CElement *Tail; //Pointer auf das letzte Element wegen Geschwindigkeit

CChainList::CChainList();

CChainList::CChainList(CElement *_ce);

void CChainList::append(CElement *_ce);

CElement* getElement(int Index);

};

//CChainList.cpp *****************

CChainList::CChainList()

{

Head = NULL;

Tail = NULL;

}

CChainList::CChainList(CElement *_ce)

{

Head = _ce;

Tail = _ce;

}

void CChainList::append(CElement *_ce)

{

printf("append: old: %d\n", _ce->getKey());

if(!Head)

Head = _ce;

if(Tail)

Tail->next = _ce;

Tail = _ce;

}

//append

CElement* CChainList::getElement(int Index)

{

int Count = 0;

CElement *Pos = Head;



while(Pos != NULL)

{

if(Count == Index)

break;



Pos = Pos->next;

Count++;

}



return(Pos);

}

//CWork.cpp *****************

int main(int argc, char* argv[])

{

printf("Hallo Welt!\n");

CChainList *cc = new CChainList();

cc->append(new CElement(2));

cc->append(new CElement(22));



CElement *_ce = cc->getElement(1);

return 0;

}





Mein Vorschlag dazu. Läst sich in CChainList noch endlos erweitern.



Gruß Matthias

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: