Dies ist eine Liste bekannter Datenstrukturen . Eine umfassendere Liste von Begriffen finden Sie unter „ Liste der Begriffe zu Algorithmen und Datenstrukturen“ . Einen Vergleich der Laufzeiten für eine Teilmenge dieser Liste finden Sie unter „Vergleich von Datenstrukturen“ .
Datentypen
Primitive Typen
- Boolescher Wert , wahr oder falsch .
- Charakter
- Gleitkommadarstellung einer endlichen Teilmenge der rationalen Zahlen .
- Dazu gehören unter anderem IEEE 754- Gleitkommazahlen einfacher und doppelter Genauigkeit .
- Fixpunktdarstellung der rationalen Zahlen
- Integer , eine direkte Darstellung entweder der ganzen Zahlen oder der nichtnegativen ganzen Zahlen
- Eine Referenz , manchmal fälschlicherweise auch Zeiger oder Handle genannt , ist ein Wert, der auf einen anderen Wert verweist, möglicherweise auch auf sich selbst.
- Symbol , eine eindeutige Kennung
- Aufzählungstyp , eine Menge von Symbolen
- Komplexe Darstellung komplexer Zahlen
Zusammengesetzte Datentypen oder nicht-primitive Datentypen
- Ein Array ist eine Folge von Elementen desselben Typs, die zusammenhängend im Speicher abgelegt sind.
- Datensatz (auch Struktur oder Struct genannt ), eine Sammlung von Feldern
- Produkttyp (auch Tupel genannt), ein Datensatz, in dem die Felder nicht benannt sind
- Zeichenkette , eine Folge von Zeichen, die Text darstellt
- Union , ein Datum, das zu einer Menge von Typen gehören kann
- Getaggte Union (auch Variante , diskriminierte Union oder Summentyp genannt ), eine Union mit einem Tag, der den Datentyp angibt.
Abstrakte Datentypen
- Container
- Liste
- Tupel
- Assoziatives Array, Map
- Multimap
- Satz
- Multiset (Beutel)
- Stapel
- Warteschlange (Beispiel: Prioritätswarteschlange )
- Doppelte Warteschlange
- Graph (Beispiel: Baum , Heap )
Einige Eigenschaften abstrakter Datentypen:
| Struktur | Bestellt? | Einzigartigkeit? |
|---|---|---|
| Liste | Ja | NEIN |
| Assoziatives Array | NEIN | nur Schlüssel (Indizes) |
| Satz | NEIN | Ja |
| Stapel | Ja | NEIN |
| Multimap | NEIN | NEIN |
| Multiset (Beutel) | NEIN | NEIN |
| Warteschlange | Ja | NEIN |
„Geordnet“ bedeutet, dass die Elemente des Datentyps eine explizite Reihenfolge aufweisen, wobei ein Element als „vor“ oder „nach“ einem anderen Element betrachtet werden kann. Diese Reihenfolge wird üblicherweise durch die Reihenfolge bestimmt, in der die Elemente der Struktur hinzugefügt werden. In bestimmten Kontexten, wie beispielsweise beim Sortieren einer Liste, können die Elemente jedoch neu angeordnet werden. Bei einer ungeordneten Struktur hingegen lassen sich keine Annahmen über die Reihenfolge der Elemente treffen (obwohl eine physikalische Implementierung dieser Datentypen häufig eine beliebige Reihenfolge anwendet). „Eindeutigkeit“ bedeutet, dass doppelte Elemente nicht zulässig sind. Je nach Implementierung des Datentyps kann der Versuch, ein doppeltes Element hinzuzufügen, entweder ignoriert, das vorhandene Element überschrieben oder ein Fehler ausgelöst werden. Die Erkennung von Duplikaten basiert auf einer integrierten (oder alternativ benutzerdefinierten) Regel zum Vergleich von Elementen.
Lineare Datenstrukturen
Eine Datenstruktur heißt linear, wenn ihre Elemente eine Sequenz bilden.
Arrays
- Array
- Assoziatives Array
- Bit-Array
- Bitfeld
- Bitboard
- Bitmap
- Ringpuffer
- Steuertabelle
- Bild
- Dope-Vektor
- Dynamisches Array
- Lückenpuffer
- Hashed-Array-Baum
- Nachschlagetabelle
- Matrix
- Paralleles Array
- Sortiertes Array
- Dünnbesetzte Matrix
- Iliffe-Vektor
- Array variabler Länge
Listen
- doppelt verkettete Liste
- Array-Liste
- Verkettete Liste, auch einfach verkettete Liste genannt
- Verbandsliste
- Selbstorganisierende Liste
- Liste überspringen
- Abgewickelte verkettete Liste
- VList
- Konjunktionsbaumliste
- XOR-verkettete Liste
- Reißverschluss
- Doppelt zusammenhängende Kantenliste, auch bekannt als Halbkantenliste
- Unterschiedeliste
- Kostenlose Liste
Bäume
Bäume sind eine Teilmenge der gerichteten azyklischen Graphen .
Binärbäume
- AA-Baum
- AVL-Baum
- Binärer Suchbaum
- Binärbaum
- Kartesischer Baum
- Konjunktionsbaumliste
- Binärbaum Linkes Kind Rechtes Geschwister
- Ordnungsstatistikbaum
- Pagode
- Randomisierter binärer Suchbaum
- Rot-schwarzer Baum
- Seil
- Sündenbockbaum
- Selbstbalancierender binärer Suchbaum
- Spreizbaum
- T-Baum
- Tangobaum
- Threaded Binary Tree
- Baumspitze
- Treap
- WAVL-Baum
- Gewichtsausgeglichener Baum
- Zip-Baum
B-Bäume
Haufen
- Haufen
- Min-Max-Heap
- Binärer Heap
- B-Heap
- Schwacher Haufen
- Binomialhaufen
- Fibonacci-Haufen
- AF-Haufen
- Leonardo-Haufen
- 2–3 Haufen
- Weicher Haufen
- Paarungshaufen
- Linker Haufen
- Treap
- Beap
- Schiefer Haufen
- Ternärer Haufen
- D-ärer Haufen
- Brodal-Warteschlange
Bit-Slice-Bäume
In diesen Datenstrukturen vergleicht jeder Baumknoten einen Bitausschnitt von Schlüsselwerten.
- Radixbaum
- Suffixbaum
- Suffix-Array
- Komprimiertes Suffix-Array
- FM-Index
- Generalisierter Suffixbaum
- B-Baum
- Judy-Array
- Versuchen Sie
- X-fast trie
- Y-Fast-Trie
- Merkle-Baum
Mehrwegebäume
- Ternärer Suchbaum
- Ternärer Baum
- K-ärer Baum
- Und/oder Baum
- (a,b)-Baum
- Baum verbinden/fällen
- SPQR-Baum
- Spaghetti-Turm
- Disjunkte Mengen-Datenstruktur (Union-Find-Datenstruktur)
- Fusionsbaum
- Enfilade
- Exponentialbaum
- Fenwick-Baum
- Van Emde Boas Baum
- Rosenbaum
Raumpartitionierungsbäume
Hierbei handelt es sich um Datenstrukturen, die zur Speicherplatzpartitionierung oder binären Speicherplatzpartitionierung verwendet werden .
- Segmentbaum
- Intervallbaum
- Weidebaum
- Bin
- Kd-Baum
- Impliziter kd-Baum
- Min/Max KD-Baum
- Entspannter kd Baum
- Adaptiver kd-Baum
- Quadtree
- Octree
- Linearer Oktabaum
- Z-Ordnung
- UB-Baum
- R-Baum
- R+ Baum
- R*-Baum
- Hilbert-R-Baum
- X-Baum
- Metrischer Baum
- Baum bedecken
- M-Baum
- VP-Baum
- BK-Baum
- Hierarchie der Begrenzungsintervalle
- Hierarchie der Begrenzungsvolumina
- BSP-Baum
- Schnelle Erkundung eines zufälligen Baumes
Anwendungsspezifische Bäume
- Abstrakter Syntaxbaum
- Syntaxbaum
- Entscheidungsbaum
- Alternierender Entscheidungsbaum
- Spielbaum
- Expectiminimax-Baum
- Fingerbaum
- Ausdrucksbaum
- Logstrukturierter Merge-Baum
- PQ-Baum
Hash-basierte Strukturen
- Filter für die Abfrage der ungefähren Mitgliedschaft
- Zählen–min Skizze
- Verteilte Hashtabelle
- Doppeltes Hashing
- Dynamische perfekte Hashtabelle
- Hash-Array-abgebildeter Trie
- Hashliste
- Hashtabelle
- Hashbaum
- Hash-Trie
- Koorde
- Präfix-Hashbaum
- Rolling Hash
- MinHash
- Länder
Diagramme
Viele graphenbasierte Datenstrukturen werden in der Informatik und verwandten Bereichen verwendet:
- Graph
- Adjazenzliste
- Adjazenzmatrix
- Graphstrukturierter Stapel
- Szenengraph
- Entscheidungsbaum
- Nullunterdrücktes Entscheidungsdiagramm
- Und-Inverter-Graph
- Gerichteter Graph
- gerichteter azyklischer Graph
- Aussagenorientierter gerichteter azyklischer Graph
- Multigraph
- Hypergraph
Andere
Siehe auch
- Liste der Algorithmen
- Rein funktionale Datenstruktur
- Blockchain , eine auf Hashes basierende, verkettete Datenstruktur, die den Zustandsverlauf über die Zeit hinweg speichern kann.
Externe Links
- Tommy Benchmarks Vergleich verschiedener Datenstrukturen.