データ構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
ファイル:Binary tree.svg
二分木は単純な型でリンクのあるデータ構造を分類する。

データ構造(データこうぞう、テンプレート:Lang-en-short)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。

ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラムアルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。

多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。データ構造が選択されれば、使用するアルゴリズムは自明であることが比較的多いが、逆の場合もある。いずれにしても適切なデータ構造の選択は極めて重要である。

この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語はデータ構造が異なるアプリケーションにおいて安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++Javaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。

データ構造は専門的なプログラミングにとって非常に重要なので、多くのデータ構造がC++におけるSTLや、Java API、及び.NETフレームワークのようなプログラミング言語の標準ライブラリや環境においてサポートされている。

データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージへアクセスする方法を実装したものとして見ることもできる。

基本的なデータ構造

関連項目

外部リンク

テンプレート:データ構造