Datenstruktur gesucht

trench140

Mitglied
Hallo alle miteinander,

ich schreibe gerade einen Thread welcher ein Verzeichnis überwachen soll und sobald dort zwei Dateien mit gleichem Namen (aber unterschiedliche Dateiendung) auftauchen diese auf einen Server laden soll.

Der Thread funktioniert im Prinzip, der Upload klappt und Verzeichnisse kann ich auch auslesen.

Die Problematik ist jetzt, dass die beiden Dateien zeitversetzt (um bis zu einige Minuten) erzeugt werden und dass es mehrere solcher Dateipaare geben kann.

Da ein Upload nur stattfinden soll, wenn ein Dateipaar vollständig ist brauche ich nun irgendeine Datenstruktur, in welche ich leicht Einträge einfügen und entfernen kann und in der ich schnell nach Daten suchen kann. Ein Eintrag sollte hierbei die beiden Dateinamen beinhalten können, also etwa sowas:

Code:
typedef struct
{
	char *file1;
	char *file2;
} files_t;

Als erstes sind mit Linked Lists eingefallen, nur habe ich da ja das Problem, dass ich im schlimmsten Fall die komplette Liste durchlaufen muss, bis ich einen Treffer erziele. Ich meine mal gehört zu haben, dass es Datenstrukturen gibt, in denen die Suche die Komplexität O(1) hat und auch das Löschen und Einfügen recht schnell gehen soll, aber ich bin mir nicht mehr sicher, welche Datenstrukturen es waren und bis jetzt habe ich sie auch nicht gefunden.

Kann mir da vielleicht jemand weiterhelfen? Vielen Dank im Voraus.

Gruß,
Trench
 
Hi.

Welche Sprache verwendest du denn?

In C++ könntest du eine std::set oder std::tr1::unorded_set verwenden.

Zugrunde liegen diesen Containern jeweils ein Baum (red-black) bzw. ein Hashset.

Gruß
 
Hallo,

tut mir leid, das hab ich zur späten Stunde gestern irgendwie vergessen, ich nutze (bzw. ich muss) C dafür.

Edit: Die Programmierung erfolgt unter Linux.
 
Zuletzt bearbeitet:
Zurück