Wenn Programmierer von "Datenstrukturen" sprechen, sprechen sie nur von abstrakten Datentypen wie Listen , Bäumen , Hashes , Graphen usw.?
Oder umfasst dieser Begriff irgendeine Struktur, die Daten enthält, wie zusammengesetzte Typen (Klassenobjekte, Strukturen, Aufzählungen usw.) und primitive Typen (Boolesche Werte, Int-Werte, Zeichen usw.)?
Ich habe bisher nur gehört, dass Programmierer den Begriff für komplexe Datenstrukturen oder abstrakte Datentypen verwenden. Der Wikipedia - Artikel, der eine Liste von Datenstrukturen enthält, enthält jedoch sowohl zusammengesetzte Typen als auch primitive Typen in der Definition obwohl es Sinn macht).
Wenn ich mich online umschaue, sehe ich, dass andere Orte, die sich auf den Begriff "Datenstruktur" im Sinne der Programmierung beziehen, sich nur auf abstrakte Datentypen beziehen, wie diese Vorlesung vom Department of Computer Science der Stony Brook University, in der es heißt
Eine Datenstruktur ist eine tatsächliche Implementierung eines bestimmten abstrakten Datentyps.
oder dieses Wikibook über Datenstrukturen , das den Begriff in Sätzen wie diesem verwendet:
Da es sich bei Datenstrukturen um übergeordnete Abstraktionen handelt, bieten sie uns Operationen für Datengruppen, z. B. das Hinzufügen eines Elements zu einer Liste oder das Nachschlagen des Elements mit der höchsten Priorität in einer Warteschlange
Warum höre ich dann immer nur Programmierer, die sich auf komplexe Datenstrukturen oder abstrakte Datentypen beziehen, wenn sie den Begriff "Datenstruktur" verwenden? Haben Programmierer eine andere Definition für den Begriff als die Wörterbuchdefinition?
if programmers mean something different when they talk about data structures
fragt aber immer noch nach Meinungen.Antworten:
Die generische Definition von "Datenstruktur" ist alles, was Ihre Daten strukturiert enthalten kann. Dies würde also zusammengesetzte Typen und primitive Typen zusätzlich zu abstrakten Datentypen umfassen. Beispielsweise ist a
string
eine Datenstruktur, da sie eine Folge von Zeichen strukturiert enthalten kann.Für Programmierer hat der Begriff jedoch auch eine andere Bedeutung.
Da der Begriff "Datenstrukturen" so weit gefasst ist, verwenden Entwickler normalerweise einen spezifischeren Begriff, um zu identifizieren, wovon sie sprechen, z. B.
class
oderdata object
oderprimitive type
, und der spezifische Begriff, der für die komplexesten oder abstraktesten Datentypen verwendet wird, ist "Datenstruktur".Aus diesem Grund hören Sie, dass "Datenstruktur" am häufigsten für abstrakte Datentypen wie Arrays, Listen, Bäume und Hashtables und nicht für Dinge wie primitive Datentypen verwendet wird
quelle
Lists
,Trees
,Graphs
usw. passiert einfach „Datenstrukturen“ zu seinDer Begriff bezieht sich auf beides, obwohl Dinge wie
ints
undbooleans
typischerweise als primitive Datentypen (oder primitive Datenstrukturen) betrachtet werden. Der Begriff selbst bezieht sich einfach auf alles, was Daten auf eine bestimmte Weise speichert. Erfülltint
diese Definition mit Sicherheit genauso gut wie eine Hash-Tabelle, nur ist es einfacher.Wenn Benutzer Datenstrukturen verwenden, beziehen sie sich in der Regel auf komplexere Datenstrukturen und nicht auf die einfacheren, sondern auf beide, die der Definition entsprechen.
quelle
int
eine "Datenstruktur" bezieht .Die einfachste und grundlegendste Definition, die ich jemals von Datenstrukturen gehört habe, ist das Speichern von Daten im Speicher, sodass grundlegende Vorgänge wie Einfügen, Aktualisieren, Löschen usw. zeit- und speichereffizient ausgeführt werden können.
Ein Datentyp gibt also die Art der Daten an, die wir darin gespeichert haben. Dies kann eine Ganzzahl, eine Dezimalzahl, ein Zeichen, eine Zeichenfolge oder ein Objekt sein. Dies können neben abstrakten Datentypen auch zusammengesetzte Typen oder primitive Typen sein.
Wir verwenden jedoch Datenstrukturen, wenn wir komplexe Daten im Speicher ablegen möchten. Dies ist der Grund, warum wir nur von Datentypen wie Arrays, Listen, Bäumen und Hashtables hören und nicht von primitiven Datentypen
quelle