データの集まりを、取り扱いやすいように一定のルールに基づいて格納したものです。
「取り扱いやすい」の意味は、データの内容や量、データが発生したり消失したりする頻度、データを読み書きする頻度などの違いによって変化します。データへのアクセスが速いことが重要な場合もありますし、容量をできるかぎり小さく抑えることが重要な場合もあります。
代表的なデータ構造に、配列、連想配列、連結リスト、木構造、スタック、キューといったものがあります。こういった代表的なデータ構造は、プログラミング言語で標準で用意されていることがあり、シンプルな使用方法であれば、自力でデータ構造を実装せずに済みます。
データ構造の実例について、C言語で解説したページが、アルゴリズムとデータ構造編【データ構造】にあります。
C++ の標準ライブラリには、配列(std::array、std::vector)、連想配列(std::map、std::unordered_map)、連結リスト(std::list、std::forward_list)、スタック (std::stack)、キュー(std::queue)があります。木構造を直接的に表現するものはありませんが、std::set や std::map は一般に木構造を使って実装されています(リンクはそれぞれ C++編の該当ページ)。
プログラミングでは、こういった多くのデータ構造の中から、目的によく合ったものを適切に選択する(あるいは組み合わせる)必要があります。
データ構造は、アルゴリズムの選択に影響を与えることがあり(連結リストを使うと、二分探索などの効率の良い探索アルゴリズムが適応できない、など)、データ構造の選択・設計は、プログラム全体の効率に関わる重要な部分です。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |