Container (Informatik)

Container (Informatik)

Ein Container in der Informatik ist ein abstraktes Objekt, das Elemente des gleichen Typs speichert. Je nach Anforderungen verwendet man dabei unterschiedliche Datenstrukturen, um einen Container zu realisieren. Beispiele für Container sind Array oder Liste, eine detailliertere Auflistung ist auf der Seite der Datenstrukturen zu finden.

Speicher- und Rechenzeitbedarf

Speicher- und Rechenzeitbedarf
  Array Dynamisches
Array
Verlinkte
Liste
Balancierter
Baum
Hashtabelle
Indizierung Θ(1) Θ(1) Θ(n) Θ(n) Θ(n)
Einfügung/Löschung
am Anfang
N/A Θ(n) Θ(1) Θ(log n) Θ(1) bis Θ(n)[1]
Einfügung/Löschung
am Ende
N/A Θ(1) Θ(1)[2]
Einfügung/Löschung
mittig
N/A Θ(n) suche +
Θ(1)[3]
Suche Θ(n) Θ(n) Θ(n) Θ(log n) Θ(1) bis Θ(n)
Mittlere Speicherplatz-
verschwendung
0 0 (Θ(n)[4]) Θ(n) Θ(n) Θ(n)

Die verschiedenen Datenstrukturen haben unterschiedliche Eigenschaften in Bezug auf Speicher- und Rechenzeitbedarf beim Einfügen neuer Elemente, Löschen bereits in der Datenstruktur vorhandener Elemente oder der Suche nach einem bestimmten Element. In Arrays und Listen kann Neues in konstanter Zeit – in Landau-Notation \mathcal{O}(1) – eingefügt werden, die Suche nach bereits im Container eingelagerten Daten kann jedoch im ungünstigsten Fall Θ(n) – ein Sichten des gesamten Datenbestands – erfordern.

Wird als Container hingegen ein balancierter Baum wie AVL- oder Rot-Schwarz-Bäume verwendet, erfordern alle Operationen Zeit \mathcal{O}(\log n) – für eine Suche muss nur noch ein kleiner Teil des Datenbestands gesichtet werden, Einfügen neuer Daten hingegen erfordert einen etwas größeren Aufwand.

Belege

  1. Dan Schmidt The Perl Journal 1999: Building a Better Hash
  2. Unter der Annahme, dass die verlinkte Liste sich einen Pointer der Datenendposition merkt, sonst muss erst das Ende der Liste mit dem Zeitaufwand Θ(n) ermittelt werden.
  3. Gerald Kruse. CS 240 Lecture Notes: Linked Lists Plus: Complexity Trade-offs. Juniata College. Spring 2008.
  4. Unter der Annahme, dass ein Puffer für Erweiterungen vorgehalten wird, sonst 0.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Container (Begriffsklärung) — Container (englisch Container ‚Behälter‘, von lateinisch continere ‚zusammenhalten‘, ‚enthalten‘) bezeichnet: Behältnisse: Container, allgemein einen Großraum Behälter ISO Container, ein spezieller nach ISO 668 genormte Großraumbehälter …   Deutsch Wikipedia

  • Monade (Informatik) — In der funktionalen Programmierung sind Monaden ein abstrakter Datentyp. Sie repräsentieren verkettbare Berechnungen. Formal wird eine Monade durch einen Typkonstruktor M und durch die Definition zweier Operationen (bind und return), die… …   Deutsch Wikipedia

  • Funktor (Informatik) — Die C++ Standardbibliothek ist eine standardisierte Programmierbibliothek zur allgemeinen Verwendung. Sie stellt verschiedene generische Container, Funktionen zu deren Manipulierung, Funktionsobjekte, generische Zeichenketten (auch „Strings“… …   Deutsch Wikipedia

  • Virtualisierung (Informatik) — In der Informatik ist die eindeutige Definition des Begriffs Virtualisierung nicht möglich, da der Begriff in vielen unterschiedlichen Anwendungsfällen anders ausgeprägt ist. Es gibt viele Konzepte und Technologien im Bereich der Hardware und… …   Deutsch Wikipedia

  • Ontologie (Informatik) — Ontologien in der Informatik sind meist sprachlich gefasste und formal geordnete Darstellungen einer Menge von Begrifflichkeiten und der zwischen ihnen bestehenden Beziehungen in einem bestimmten Gegenstandsbereich. Sie werden dazu genutzt,… …   Deutsch Wikipedia

  • Portal (Informatik) — Der Ausdruck Portal (lat. porta, „Pforte“) bezeichnet in der Informatik ein Anwendungssystem, das sich durch die Integration von Anwendungen, Prozessen und Diensten auszeichnet. Ein Portal stellt seinem Benutzer unterschiedliche Funktionen zur… …   Deutsch Wikipedia

  • Is-a — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • Vererbung (objektorientierte Programmierung) — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • C-Plusplus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • C-plus-plus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”