PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hashtabellen, Listen, oder doch ein Array?



Linuxexplorer
03-08-2002, 10:28
Also ich schreibe ein Programm, welches Datensätze aus einer Datei einliest und analysiert. Jetzt habe ich diese Datensätze einfach in einem Array gespeichert.
Wenn der Benutzer jetzt einen neuen Datensatz hinzufügen will, wird dieser einfach am Ende des Arrays gespeichert. Das Array ist statisch auf 200 Einträge begrenzt, was auch ein Problem ist.

Jetzt suche ich eine Speicherstrucktur, die so flexibel wie ein Array ist (Zugriff ), und neue Datensätze sollen irgendwo dazwischen eingefügt werden könne, wie bei Listen.

Die Hashtabellen, na ja ich finde sowas nicht gerade praktisch :rolleyes:

Was könnt ihr mir empfehlen? Hat jemand von euch Erfahrung mit solchen Programmen?

Vielen Dank!


MFG: Linuxexplorer

Röme
03-08-2002, 11:21
Redest Du von Java?

Dann nimm eine ArrayList, die ist dynamisch und es ist relativ einfach auf einzelne Elemente zuzugreifen.

Gruss
Röme

Linuxexplorer
03-08-2002, 14:52
Hi !

Nein, ich meine c++. Es geht mir mehr um das grundlegende Design.

MFG: Linuxexplorer

anda_skoa
03-08-2002, 15:01
Du könnteste einen std::vector benutzen.

Der kann mehr oder weniger wie ein Array benutzt werden (es gibt den Index Operator []), ist aber dynamisch vergrößerbar.

Btw, falls das in einem Programm mit Qt ist, kannst du eventuell auch QMemArray verwenden.

Ciao,
_

tiris
04-08-2002, 20:38
Hi,
Wenn du eine ganz C spezifische Sache machen willst kannst du ja eine Klasse machen die die Daten speichert. Ich als nicht ++ler, also C-Coder bin der Meinung mit einer structure wärest du am besten dran. Du kannst dann einfach deine Struktur den Daten Anpassen die du brauchst und dann in jeder Struktur einen Namen ablegen. Das ganze sieht aus wie eine Variablendeklaration:

struct person{
char[20] name;
int alter;
char geschlecht;
char[100] addresse;
};
Damit kannst du von der Struktur person in einer Datenbank beliebig viele Einträge machen.

tiris

DerLipper[TuX]
04-08-2002, 21:40
zu Studienzwecken könntest du dich auch mit AVL-Bäumen beschäftigen...

Lies mal Segdewick: Algorithmen in C. Da gibts genug Sachen drin.

Gruß,
Marko