Verkettete Liste

Bastih84

Mitglied
Wie kann ich realisieren, das ich meinen jeweils neu hinzukommenden Eintrag an das ENDE meiner Liste schreibe

Bei meiner Version schreibt er jeden Eintrag an den Anfang der Liste, weiß allerdings nicht wie ich mein Problem umsetzten soll, dass er das ganze ans Ende schreibt, vielleicht helft ihr wieder mal

Ich habe mal einen Screenshot von meinem Programm gemacht (siehe Dateianhang), hier soll es also nicht mit der 13, sondern mit der 1 anfangen

Hier mein Programmteil:
Code:
void Liste::einfuegen(int prnum, int prma)
{
	
	Eintrag *temp;
	Eintrag *temp2;

	temp2=first;
	temp=new Eintrag;
	if(first==0)
	{
		temp->next=0;
	}
	else
	{
		temp->next=first;
	}
	first=temp;
	first->nr=index;			//entspricht dem index
	first->prnr=prnum;			//entspricht der program_nr
	first->prmap=prma;			//entspricht der program_map
	index++;

}

schonmal Danke
 

Anhänge

  • screenshot.JPG
    screenshot.JPG
    19,5 KB · Aufrufe: 291
Hallo,

Code:
                List(int elem){
                        next = NULL;
                        this->elem = elem;
                }
so kannst du rekursiv hintenwas dran hängen:

Code:
                void push(int elem){
                        if(next == NULL){
                                next = new List(elem);
                        }
                        else{
                                next->push(elem);
                        }
                }

Und so iterativ in dem du dich nach hinten "durchhangelst":

Code:
                void push_iterativ(int elem){
                        List tmp = next;
                        if(tmp != NULL){
                                while(tmp->next != NULL){
                                        tmp = tmp->next;
                                }
                                tmp->next = new List(elem);
                        }
                        else
                                tmp = new List(elem);
                }

Gruß

RedWing
 
Zuletzt bearbeitet:
Und wenn die Liste dann komplett funktionsfähig ist, steig besser auf die STL std::list um ;)

Das soll nicht heissen, dass deine Liste Mist ist, aber die STL-Container sind vermutlich auf wesentlich mehr Fälle getestet als deine Liste es je sein wird. Ich habe mir auch mal einen eigenen Listen-Container gebastelt, für die Erfahrung praktisch, aber mit der STL fährt man da sicherer.
 
Code:
Das soll nicht heissen, dass deine Liste Mist ist, aber die STL-Container sind vermutlich auf wesentlich mehr Fälle getestet als deine Liste es je sein wird.

Und zusätzlich kommt noch hinzu das sie höchst wahrsch. viel Effizienter designed/ programmiert sind...

Gruß

RedWing
 
STL ist zwar gut und schön, nur eben C++...
unter C kommt man da nicht weit, da bastelt man sich selbst eine :-) und die funktioniert sicher unter allen Umständen. Was sollte denn passieren?
Kein Speicher ist das einzige, das man abfangen muss (und immer schön brav die Enden mit NULL markieren)
In C bastle ich fast immer LLs DLLs Stacks FIFOs LIFOs BTs sortiert oder nichtsortiert... für meine Projekte.
STL ist nett aber nicht alles Bitte nicht zu vergessen: es gibt noch C... ;-)

lg
Johannes
 
Zurück