2016-10-12 19 views
3

Eine Datenstruktur wird in erster Linie zum Speichern von Informationen verwendet. In einleitenden CS-Kursen ist eine beliebte Anwendung eine Datenbank von Menschen - Mitarbeiter, Studenten oder Clubmitglieder. In einer Implementierung einer verknüpften Liste würde jeder Knoten 'Name', 'ID', 'Alter' usw. enthalten, und es würde die Funktion 'Einfügen' geben, die den Benutzer auffordert, die Informationen jeder Person einzeln einzugeben, wenn das Programm ausgeführt wird .Verlust der Datenstruktur bei Beendigung des Programms

Eine solche Datenstruktur wird normalerweise auf dem Heap dynamisch zugewiesen, so dass beim Beenden des Programms alle Daten verloren gehen. Ist also ein Mitarbeiterverzeichnis wirklich eine echte Anwendung der Linked-List-Datenstruktur? Und wenn ja, wie gehen wir damit um, dass die Daten beim Beenden des Programms verloren gehen?

+2

Die temporären Strukturen, die während der Programmausführung verwendet werden, werden mit der Methode some.method serialisiert. Die genaue Art und Weise, wie Strukturen serialisiert werden, hängt von vielen Faktoren ab, daher ist es schwierig zu sagen, wie eine gegebene Struktur aussehen wird, wenn sie auf der Platte gespeichert wird. – Carcigenicate

Antwort

1

Es ist einfach. In typischen n-tier architecture werden Daten in einem separaten permanenten Speicherbereich gespeichert. Daten werden im Allgemeinen nur als Objekte im RAM gehalten, während diese Daten verarbeitet werden. Andernfalls werden sie in den Datenspeicher ausgelagert. Üblicherweise ist dies ein relationales Datenbankverwaltungssystem (RDBMS) wie Oracle oder SQL Server, aber es kann auch eine Tabelle, eine Textdatei oder irgendetwas sein, das gespeicherte Daten darstellen kann. Wenn Daten in einer Textdatei gespeichert werden, kann eine Begrenzungssprache oder ein System verwendet werden, um eine Struktur bereitzustellen - Beispiele sind CSV-Dateien (Comma Separated Value) und XML. In alten Zeiten wurden Daten als Lochkarten oder Lochpapier (PPT) gespeichert.

Der Prozess zum Speichern von Daten im Speicher in einem Formular, das leichter zu erhalten ist, wird manchmal als Serialisierung bezeichnet. Deserialisierung ist der umgekehrte Prozess - um die übersetzten Daten in das Original (oder ein Äquivalent der ursprünglichen) Daten im Speicher umzuwandeln, wie z. B. verknüpfte Listen, Tupel, Bitmap-Bilder, Stapel, Arrays usw.

1

Der Zweck, das Design des Mitarbeiterverzeichnisses über die Linked List oder eine andere dynamisch zugewiesene Datenstruktur zu vermitteln, soll Ihnen verdeutlichen, wie reale Anwendungen aus unterschiedlichen Perspektiven gestaltet werden. Wenn Sie dynamisch allozierten Speicher verwenden, werden Sie die Daten verlieren, sobald sie ausgeführt wurden, aber der Fokus des Themas liegt nicht auf dem, was nach der Ausführung passiert, sondern was während der Ausführung passiert. Wie Sie während Ihres Semesters lernen werden, dass die realen Herausforderungen während der Ausführung auftreten, wie Performanceproblem, falsche Datenstrukturauswahlfehler, Speicherbeschränkungen usw. und um dies zu überwinden, müssen Sie gut verstehen, wie unterschiedlich DS mit Speicher arbeitet. Warum wir hashmap über Array oder Linkliste verwenden und umgekehrt.

Jetzt zurück zu Ihrer spezifischen Frage, Nein werden Sie nicht Ihre Daten verlieren, wie die realen Welt Mitarbeiterverzeichnis um Databases gebaut werden, also bevor Ihre Programmausführung abgeschlossen ist, werden Ihre Daten in einer Form gespeichert, die Ihre Datenbank für persistent storage versteht. Von dort werden Ihre gespeicherten Daten bei Bedarf zur Verarbeitung in den Speicher gezogen, was wiederum linkList DS beinhalten könnte.

1

Es scheint, dass bereits Ihr Verständnis von Begriffen unangemessen ist.

In CS/IT eine Datenbank ist eine Komponente, die Persistenz für Daten bietet. Das ist der springende Punkt einer Datenbank - es stellt sicher, dass Ihre Daten nicht verloren gehen, wenn ein Prozess endet oder ein Computer ausgeschaltet ist.

Die Sache ist: Wenn Sie mit dem Programmieren beginnen und über Datentypen und Datenstrukturen, natürlich, verkettete Listen sind eines der ersten Dinge, die Sie über das Lernen zu hören. Und dann wenden Sie dieses Wissen an, indem Sie eine Anwendung erstellen, die es einem Benutzer ermöglicht, Daten einzugeben; um dann etwas damit zu tun (wie drucken, suchen, Statistiken erstellen).Aber absichtlich ist all das vorbei, wenn dein erstes Programm endet.

Der einfache Grund dafür: Ausdauer fügt eine ganze Menge Komplexität zu etwas, die Sie in Ihrem Programm zu tun. Also, für einfache pädagogische Zwecke beginnen Sie mit "Nur-Speicher" -Anwendungen.

Und dann, wenn Sie das gemeistert haben; dann gehst du noch einen Schritt weiter und bearbeitest Fragen wie "OK, nun, was bedeutet es, die Daten nicht immer wieder neu eingeben zu müssen, wenn ich mein Programm neu starte?"

Verwandte Themen