Datenstruktur-Frage
-
Hallo zusammen,
ich sitze gerade an der Bearbeitung einer Aufgabe für's Studium. Ich habe keine Code-technische Frage, sondern eine Frage bzgl. der Verwendung der Datenstruktur bzw. was aus Implementations-Sicht am "Besten" ist. Nun aber zu meiner Frage:In einer CSV-Datei liegen Daten, hier eine Beispiel-Tabelle (ist nicht die Tabelle aus der Aufgabe, spiegelt aber dasselbe Problem wider):
Peter Metzger 1000€
Markus Frisör 1500€
Martin Metzger 1200€
Paul Bäcker 900€
Max Frisör 1300€
Anton Bäcker 1100€
..... ..... .....So sieht also die Beispiel-Tabelle aus. Nun will ich diese Daten aus der CSV auslesen, was auch wunderbar klappt. Ich packe die Informationen in ein struct und hänge das struct in eine doppelt verkettete Liste. Da ich die Daten aber nicht in einer einzigen Liste verwalten will, sondern gerne für jeden Beruf eine eigene Liste haben will, stellt sich mir die Frage wie ich das Ganze implementiere.
1. Ein Listenkopf hat ja normalerweise nur so viele next-Zeiger wie ich definiere. Gibt es eine Möglichkeit, die Anzahl der Zeiger dynamisch zu bestimmen, sodass er nur so viele Zeiger erstellt, wie ich auch Berufe und somit einzelne Listen habe?
oder
2. Ist es sinnvoller komplett eigene Listen für jeden der Berufe zu erstellen, somit eine für den Metzger, den Frisör und den Bäcker zu erstellen?
Ich hoffe ihr könnt mir irgendwie helfen, Ich vermute die erste Idee ist nicht umsetzbar, trotzdem wäre ich für jede Hilfe dankbar und bedanke mich bereits im Voraus für Antworten!
Liebe Grüße,
AstraRotlicht
-
AstraRotlicht schrieb:
1. Ein Listenkopf hat ja normalerweise nur so viele next-Zeiger wie ich definiere. Gibt es eine Möglichkeit, die Anzahl der Zeiger dynamisch zu bestimmen, sodass er nur so viele Zeiger erstellt, wie ich auch Berufe und somit einzelne Listen habe?
check ich nicht
AstraRotlicht schrieb:
2. Ist es sinnvoller komplett eigene Listen für jeden der Berufe zu erstellen, somit eine für den Metzger, den Frisör und den Bäcker zu erstellen?
ja zumindest einen eigenen index auf die haupt liste oder so
-
Mit 1. meinte ich, dass ich einen Listenkopf erstelle, der zum Beispiel 5 Zeiger hat, die auf 5 wiederum einzelne Listen zeigt.
Und bei 2., ob ich komplett selbstständige Listen erstelle, die quasi keinen Zusammenhang haben und auch keinen gemeinsamen Listenkopf. Laut Aufgabenstellung brauchen die verschiedenen (in diesem Fall Berufe) keinen Zusammenhang, d.h. ich will jeden Beruf für sich selbst betrachten.
Ich hoffe dass meine Frage jetzt verständlicher geworden ist...
-
Du kannst auch den Listenkopf als eine verkettete Liste erstellen, in der jedes Element einen Zeiger auf das erste Element der Berufeliste zeigt.
Alternativ bleibt noch ein Zeigerarray, das die Listenköpfe speichert.
-
so ähnlich hab ich sowas letztens gemacht
struct liste { int wert; struct liste next; } struct liste_von_listen { struct listenkoepfekopf next; struct liste listenanfang; }
würde mich mal interessieren ob es nicht einfacher, sprich schneller, wäre ein array zu benutzen
-
vec schrieb:
so ähnlich hab ich sowas letztens gemacht
ohne zeigergeht das nich
-
vec schrieb:
so ähnlich hab ich sowas letztens gemacht
struct liste { int wert; struct liste next; }
Wenn Dein Compiler das übersetzt hat, dann wirf ihn weg.
Wenn Deine Tastatur den Stern und den Strichpunkt unterlassen hat, dann wirf sie weg.
Wenn Du diese Zeichen vergessen hast, dann ... :pSo ist's richtig:
struct liste { int wert; struct liste *next; };
mfg Martin