Zum Inhalt springen

einfach verkettet listen


hame

Empfohlene Beiträge

Guckst Du hier: Liste (Datenstruktur) ? Wikipedia

Das sollte für eine einfach verkettete Liste reichen.

Bücher gibts übrigens verdammt viele, aber ich kenne keins, was nur Listen behandelt. Es geht vielmehr um Algorithmen, Datenstrukturen und später dann Automaten, ...

Meine 2 alten Bücher aus der Sekundarstufe 2 waren von Klett. Und die sind auch heute noch prima :D

Bearbeitet von VaNaTiC
Link zu diesem Kommentar
Auf anderen Seiten teilen

Verkettete Listen und andere Objekte macht man in C mit structs, structs sind eig. Verbunddatentypen, naja hier ein Beispiel.

Verkettete Listen bestehen ja eig nur aus Listenelementen (Nodes) die immer auf den nächsten zeigen. Wenn ein Node auf keinen zeigt, so hat man das Ende der Liste erreicht.

Node -> Node -> Node -> NULL

Bsp für ein Listenelement welches eine Zahl speichert, und einen Zeiger auf das nächste Listenelement.

struct node {

	int data;

	struct node* next;

};


/* Head-Zeiger IMMER auf das erste Element der Liste */

struct node* head = NULL;


int insertElement(int data) {


        struct node *neu;


	/* Erstelle das zum Einfügen bereite neue Element */

        neu =(struct node*)malloc(sizeof(struct node));    

        if(neu == NULL){

			perror("Malloc failed");

			return -2;

	}

	neu->next=NULL;	

 	neu->data = data;



/* Falls noch kein Element da, wird neu das erste Element */

        if(head == NULL) {

                head=neu;

                return data;

        }


/*Ansonsten füge es ganz hinten ein */

/* Alle Werte durchgehen und ggf einfügen. */  

	pt = head;  /*Laufzeiger zeigt auf Kopf */

        while(pt->next != NULL)   pt = pt.next;


         pt.next = neu;

         return data;

}

//Zur Schreibweise:

pt->next ist das gleiche wie: (*pt).next

Bearbeitet von konsti4u
Link zu diesem Kommentar
Auf anderen Seiten teilen

@konsti4u, danke! ;)

hat er mir für den Anfang sehr viel fürs Verständis von verkettete listen gebracht. ich hab dann nur noch eine frage wenn ich eine liste sortieren soll, muss ich dann immer über jedes element gehn und dann es aussortieren und dann wieder neu sortieren? z.b wenn ich eine liste nach ungeraden und gerade zahlen sortiere?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also eine sortierte Liste ist nicht schwer, du musst einfach die Elemente von Anfang an sortiert einfügen :-)

z.B: Aufsteigend sortierte Liste:

1. Erstes Element immer einfügen (head auf neu)

neu->NULL

2. Falls das neue Element kleiner als das erste, dann lasse neu auf erste zeigen und das neue das erste werden (head auf neu)

neu->alt_neu->NULL

3. Ansonsten gehe durch die Liste bis man NULL erreicht und prüfe jeweils ob das neue Element < nächste Element, wenn ja, dann tu das neue element auf das nächste zeigen und das derzeitige element auf das neue.

derzeitig->neu->next

4. Man muss es ganz hinten anfügen

letzte->neu->NULL

Falls Probleme kann ich auch dafür ein Code-schnippsel schreiben, oder am besten frag erst :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke für den tipp erstmal. ;)

also wir schreiben ende januar eine klausur in c und da werden halt höchstwahrscheinlich listen dran kommen, es ist halt so das wir vorgegebene struktur haben und eine liste die z.B zahlen enthält und und diese liste sollen wir dann absuchen und eine in eine neue liste kopieren z.b in die erste hälfte die geraden und in der zweiten hälfte die ungerade zahlen. da wollt ich halt wissen wie man das am besten angeht da ich mich mit listen noch nicht so viel auseinander gesetzt haben. aber ich werde es erstmal alleine versuchen die aufgaben zu lösen. wenn ich dann hilfe brauche wende ich mich gerne wieder dem forum ^^.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...