Wie die Umsetzung einer Reihe?

Will ich implementieren eine Reihe in C.
Ist es OK, um eine verknüpfte Liste, wenn Sie erstellen den SATZ, oder sollte ich einen anderen Ansatz ?

Wie Sie in der Regel schreiben Sie Ihre eigenen festgelegt (wenn nötig).

HINWEIS:
Wenn ich die Verlinkte Liste, Ansatz, ich werde wahrscheinlich haben die folgenden Schwierigkeiten für meine Operationen:

  • init : O(1);
  • zerstören: O(n);
  • insert: O(n);
  • entfernen: O(n);
  • union: O(n*m);
  • Kreuzung: O(n*m);
  • Unterschied: O(n*m);
  • ismember: O(n);
  • issubset: O(n*m);
  • setisequal: O(n*m);

O(n*m) scheint ein wenig zu groß, vor allem für große Daten... gibt es eine Möglichkeit zu implementieren, in meinem Set mehr effizient ?

  • Mit aus zu wissen, was Sie wollen zu erreichen, ist es schwer zu helfen. Wenn Sie nur wollen, um eine array-Struktur dann ein Vektor ist wahrscheinlich Ihren Weg zu gehen. Ich habe angenommen, dass du tatsächlich mit C++. Die STL hat jede Menge Zeug, das gebunden ist, um Ihnen zu helfen.
  • C++ implementiert seiner Klasse als ein ausgeglichener binärer Baum - das ist wohl eine gute Wahl.
  • Als seine Frage war tagged as C, ich denke, wir können davon ausgehen, dass er nicht mit C++.
  • Ich bin nicht mit C++, sondern C. ich habe bereits geschrieben eine generische verkettete Listen in C. Zunächst wollte ich wiederverwenden meine Link-Liste-code, so dass ich cam durchzuführen. Ich wollte wissen, ob was ist der Strategie erstellen Sie eine Daten - Struktur von Schrott. Ich bin nicht daran interessiert, die Wiederverwendung von ausländischen Bibliotheken, gerade (meine eigene) C-code.
Schreibe einen Kommentar