mikrocontroller.net

Forum: PC-Programmierung verkettete Liste


Autor: Stef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr,

ich habe in C eine einfach verkettete Liste programmiert. Jedes
Listenelement beinhaltet unter anderem den Index des jeweiligen
Elements (als INT-Wert). Wenn ich nun ein neues Element in der Mitte
der Liste einfüge,  müssen sich ja die Indizes aller darauffolgender
Listenelemente um 1 erhöhen.

Bei mir sieht das so aus wenn ich an der stelle 1 ein Element einfüge
und die Liste ausgebe:

vorher:
Index
0
1
2
3
4
...

nachher:
0
1
1
2
3
4..


Wie könnte man das am besten programmieren?

Vielen Dank schon mal im Voraus!!

Autor: Detlev (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, du hast doch sicher noch einen Zeiger, der auf das neue Element
zeigt. Von da aus klapperst du die Liste bis zum Ende ab und erhöhst
die Indizes ODER du hast eine Laufvariable, die den Index mitzählt und
weißt den Elementen die entsprechende Nummer zu.

Autor: Stef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die antwort.das mit dem abklappern der liste ist mir auch
eingefallen. hab nur gedacht es gibt was eleganteres.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
komische verkettete Liste...
Eigentlich sollte jedes Element die Adresse des folgenden Elements
haben.
So kann man nämlich die Elemente einfach (unsortiert) in einer Tabelle
ablegen, und braucht nur den Folgeindex des vorhergehenden Elements in
der Liste verändern. (wirr?)

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> hab nur gedacht es gibt was eleganteres

Nochmal drüber nachdenken ob du den Index überhaupt brauchst.
Macht nur Arbeit beim Einfügen, Löschen und Umsortieren.

Für den Fall, dass man den Index tatsächlich irgendwo mal
braucht, kann man ihn sich ganz einfach vorübergehend erzeugen,
indem man durch die komplette Liste huscht und den Elementen
die Indexnummer erst dann durchzählt. Ist eine Anwendung
des 'Lazy Evaluation' Prinzips: "mache eine Arbeit erst dann
wenns nicht mehr anders geht". Wozu aufwändig einen Index
bei jeder Listenänderung mitführen, wenn ich das Erstellen
des Index auch solange vertagen kann, bis ich den Index auch
wirklich brauche.

Autor: Stef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke hat sich erledigt. Musste das mit dem kompletten durchlaufen der
liste machen. brauche den index nämlich wirklich.

danke für die antworten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.