Forum: PC-Programmierung Bibliothek zur Listenverwaltung


von Dennis S. (eltio)


Lesenswert?

Hallo zusammen,

ich suche eine Bibliothek / Codesammlung zur Verwaltung von Listen in C. 
Benötigte Funktionen sind zum Beispiel: Anlegen und Löschen von Knoten, 
Zählen der Knoten einer Liste, ändern der Daten von beliebigen Knoten, 
...

Leider habe ich nicht die Möglichkeit C++ zu nutzen, was vermutlich 
einfacher wäre.

Gruß Dennis

von imonbln (Gast)


Lesenswert?

Also ich persönlich fidne die aus den Linux Kernel recht, schön

ist nur ein header und ein wenig MARCO magic, welches hier zum beispiel
erklärt wird.

http://isis.poly.edu/kulesh/stuff/src/klist/

von Dennis S. (eltio)


Lesenswert?

Danke, das schaue ich mir mal an!

Gruß Dennis

von Purzel H. (hacky)


Lesenswert?

>ich suche eine Bibliothek / Codesammlung zur Verwaltung von Listen in C.
Benötigte Funktionen sind zum Beispiel: Anlegen und Löschen von Knoten,
Zählen der Knoten einer Liste, ändern der Daten von beliebigen Knoten,



Whoa ... sowas schreibt man in einer Stunde oder so selbst. Wenn das 
nicht drinliegt sollte man's seinlassen.

von Dennis S. (eltio)


Lesenswert?

Jaja Kleiner.. ein Tipp für dich: denke niemals dass du der größte Fisch 
im Becken bist. Versuche dich weiterzuentwickeln und nimm nicht an, dass 
deine Lösung die einzig wahre und perfekte ist. So ähnlich gilt das 
übrigens nicht nur für das Programmieren.

Gruß Dennis

von Klaus W. (mfgkw)


Lesenswert?

Dennis S. schrieb:
> Hallo zusammen,
>
> ich suche eine Bibliothek / Codesammlung zur Verwaltung von Listen in C.
> Benötigte Funktionen sind zum Beispiel: Anlegen und Löschen von Knoten,
> Zählen der Knoten einer Liste, ändern der Daten von beliebigen Knoten,
> ...
>
> Leider habe ich nicht die Möglichkeit C++ zu nutzen, was vermutlich
> einfacher wäre.
>
> Gruß Dennis

Hört sich schwer nach Hausaufgabe an?
Wieso sollte man sonst die Knoten zählen?

von Dennis S. (eltio)


Lesenswert?

Klaus Wachtler schrieb:
> Hört sich schwer nach Hausaufgabe an?
Auch außerhalb der Schule ergeben sich Problemstellungen. So verdienen 
die meisten sogar ihr Geld.

> Wieso sollte man sonst die Knoten zählen?
Weil es mein Programm erfordert.

Gruß Dennis

von Klaus W. (mfgkw)


Lesenswert?

Dennis S. schrieb:
> Klaus Wachtler schrieb:
>> Hört sich schwer nach Hausaufgabe an?
> Auch außerhalb der Schule ergeben sich Problemstellungen. So verdienen
> die meisten sogar ihr Geld.

Wenn man Geld damit verdient, sollte man schon eine der 1456156145 
vorhandenen Listenimplementation ergoogeln können :-)

>
>> Wieso sollte man sonst die Knoten zählen?
> Weil es mein Programm erfordert.

Wenn man das braucht, zählt man nicht die Knoten der Liste, sondern 
zählt eine Variable rauf und runter beim Einfügen und Löschen.
Dann ist die Abfrage der Anzahl nicht mehr O(n), sondern O(1).

>
> Gruß Dennis

von Dennis S. (eltio)


Lesenswert?

Klaus Wachtler schrieb:
> Wenn man Geld damit verdient, sollte man schon eine der 1456156145
> vorhandenen Listenimplementation ergoogeln können :-)

"Problemlösung im Beruf" ist etwas weiter gefasst als das Erstellen von 
Listen. Eine Kindergärtnerin wird sich kaum dafür interessieren.

Klaus Wachtler schrieb:
> Wenn man das braucht, zählt man nicht die Knoten der Liste, sondern
> zählt eine Variable rauf und runter beim Einfügen und Löschen.
> Dann ist die Abfrage der Anzahl nicht mehr O(n), sondern O(1).

Ja, so würde ich es auch machen. Das heißt aber nicht, dass -- nur weil 
zwei Leute das sagen -- es keine anderen Möglichkeiten gibt.

Also: wenn jemand etwas zum Thema sagen kann, dann gerne! Ansonsten 
macht euch doch nicht die Arbeit und fangt wildes spekulieren an... der 
Lerneffekt ist bei mir da doch auch bei Null.

Gruß

von Arc N. (arc)


Lesenswert?

Dennis S. schrieb:
> Klaus Wachtler schrieb:
>> Wenn man das braucht, zählt man nicht die Knoten der Liste, sondern
>> zählt eine Variable rauf und runter beim Einfügen und Löschen.
>> Dann ist die Abfrage der Anzahl nicht mehr O(n), sondern O(1).
>
> Ja, so würde ich es auch machen. Das heißt aber nicht, dass -- nur weil
> zwei Leute das sagen -- es keine anderen Möglichkeiten gibt.

O(1) ist optimal, besser geht es nicht, nur deutlich schlechter.
Die eigentlichen Fragen bei solchen Datenstrukturen sind zuerst andere:
Wie viele Daten, welche Daten, welche Operation(en) werden am häufigsten 
benötigt, wie werden die Daten weiterverwendet usw.
dann kann überlegt werden welche Datenstruktur sinnvoll ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.