2016-10-12 3 views
3

データ構造は、情報を最優先に格納するために使用されます。入門CSコースでは、一般的なアプリケーションは、従業員、学生、またはクラブのメンバーである人のデータベースです。リンクされたリストの実装では、各ノードに 'name'、 'id'、 'age'などが含まれていて、プログラムの実行時に、各人の情報を1つずつ入力するように促す関数 'insert' 。プログラム終了時のデータ構造の喪失

通常、このようなデータ構造はヒープ上に動的に割り当てられるため、プログラムが終了するとすべてのデータが失われます。従業員ディレクトリは実際にリンクリストのデータ構造の実際のアプリケーションですか?もしそうなら、プログラムの終了時にデータが失われたという事実にどのように対処しますか?

+2

プログラムの実行中に使用される一時構造は、some.methodを使用してシリアル化されます。構造体がシリアライズされる正確な方法は、多くの要素に依存します。そのため、ディスクに保存するときに特定の構造体がどのように「見える」ようにするのは難しいです。 – Carcigenicate

答えて

1

これは簡単です。典型的なn-tier architectureでは、データは別の永久記憶域に格納されます。データは一般にオブジェクトとしてRAM内に保持され、そのデータが処理されている間はデータストアにオフロードされます。一般に、これはOracleやSQL Serverなどのリレーショナルデータベースベースの管理システム(RDBMS)ですが、スプレッドシート、テキストファイル、または保存されたデータを表すこともできます。データがテキストファイルに保存されている場合は、区切りの言語またはシステムを使用して構造を提供することができます。例としては、CSV(Comma Separated Value)ファイルとXMLがあります。古きよき時代には、データはパンチカードやパンチペーパーテープ(PPT)として保存されました。

保存しやすい形式にデータを保存するプロセスは、というシリアル化と呼ばれることがあります。逆シリアル化は、変換されたデータを取り出し、リンクリスト、タプル、ビットマップイメージ、スタック、配列などの元のデータ(または元のデータと同等)に戻す処理です。

1

Linkedリストやその他の動的に割り当てられたデータ構造を通じて従業員ディレクトリ設計を教えることのポイントは、実際のアプリケーションが異なる視点からどのように設計されているかを理解できるようにすることです。動的に割り当てられたメモリを使用すると、その実行が完了するとデータが失われますが、トピックの焦点は実行後に発生するものではなく、実行中に発生するものになります。あなたのセメスターでは、パフォーマンス関連の問題、誤ったデータ構造の選択の欠陥、メモリ制約などの実行中に現実世界の課題が発生し、これを克服するために、異なるDSがどのようにメモリで動作するかを理解することが必要です。なぜ、配列やリンクリストに対してハッシュマップを使用するのか、逆の場合はハッシュマップを使用するのか。

実際の従業員ディレクトリがDatabasesの周りに構築されているため、データを失うことはありません。プログラムの実行が完了する前に、データベースはpersistent storageの形式で保存されます。そこから、保存されたデータは、linkList DSを再度含む可能性のある処理に必要なときに、メモリに引き込まれます。

1

すでに用語の理解が不適切であるようです。

CS/ITでデータベースは、データ用に持続性を提供するコンポーネントです。これは、データベースの全体のポイントです。一部のプロセスが終了するか、または一部のコンピュータの電源がオフになってもデータが失われないようにします。

事がある:あなたがプログラミングし、約データ型データ構造、当然のことながら、リンクリストはあなたが聞く最初のものの一つですが学習を開始したとき。そして、ユーザーがデータを入力できるようにするアプリケーションを構築することによって、その知識を適用します。 (印刷、検索、統計の作成など)で何かをしてください。しかし、目的によって、あなたの最初のプログラムが終了したら、そのすべてがなくなってしまいます。そのため

単純な理由:永続何でも、あなたのプログラムで行うへの複雑さの全体の多くを追加します。だから、簡単に教育の目的のためにあなたは "メモリのみ"のアプリケーションで始まります。

そして、あなたがそれを習得したとき。さらに一歩進んで、「OK、今、プログラムを再起動するときに何度もデータを入力しないようにする手段がありますか?」などの質問に対処しています。

関連する問題