削除された内容 追加された内容
Sycgln (会話 | 投稿記録)
編集の要約なし
Olivelana (会話 | 投稿記録)
編集の要約なし
(同じ利用者による、間の1版が非表示)
1行目:
[[Image:binary_tree.svg|thumb|[[二分木]]のデータ構造]]
[[File:Hash_table_3_1_1_0_1_0_0_SP.svg|リンク=https://en.wikipedia.org/wiki/File:Hash_table_3_1_1_0_1_0_0_SP.svg|サムネイル|ハッシュテーブルのデータ構造]]
'''データ構造'''(データこうぞう、{{lang-en-short|data structure}})とは、[[コンピュータプログラミング]]での、[[データ]]の集まりの形式化された構成である。格納された各データの参照や修正といった管理を容易にするための構成である<ref>{{Cite book|url=https://dl.acm.org/citation.cfm?id=1614191|title=Introduction to Algorithms, Third Edition|last=Cormen|first=Thomas H.|last2=Leiserson|first2=Charles E.|last3=Rivest|first3=Ronald L.|last4=Stein|first4=Clifford|date=2009|publisher=The MIT Press|isbn=978-0262033848|edition=3rd}}</ref><ref>{{cite book|last1=Black|first1=Paul E.|editor1-last=Pieterse|editor1-first=Vreda|editor2-last=Black|editor2-first=Paul E.|title=Dictionary of Algorithms and Data Structures [online]|date=15 December 2004|publisher=[[National Institute of Standards and Technology]]|chapter-url=https://xlinux.nist.gov/dads/HTML/datastructur.html|access-date=2018-11-06|chapter=data structure}}</ref><ref>{{cite encyclopedia|encyclopedia=Encyclopaedia Britannica|title=Data structure|url=https://www.britannica.com/technology/data-structure|access-date=2018-11-06|date=17 April 2017}}</ref>。一定の関係性を持たせた[[データ型]]のコレクションであり、[[値 (計算機科学)|データ値]]に適用するための[[関数 (数学)|関数]]や[[プロシージャ|手続き]]も格納されることがある<ref>{{Cite book|url=http://dl.acm.org/citation.cfm?id=1074100.1074312|title=Encyclopedia of Computer Science|last=Wegner|first=Peter|last2=Reilly|first2=Edwin D.|publisher=John Wiley and Sons|isbn=978-0470864128|location=Chichester, UK|pages=507–512|date=2003-08-29}}</ref>。データの[[代数的構造]]とも言われる。
 
== 概要 ==
'''データ構造'''(データこうぞう、{{lang-en-short|data structure}})とは[[コンピュータプログラミング]]において、規則化された連結関係によるデータ値(データ要素)の集合体である。[[情報工学|計算機科学]]では、効率的に参照可能かつ修正可能なデータ構成、データ管理、データ蓄積と定義されている。データ構造には[[関数 (プログラミング)|関数]]や[[演算子|オペレータ]]も付加されることがある。
 
[[ソフトウェア]]開発において、データ構造についてどのような[[設計]]を行うかは、[[プログラム (コンピュータ)|プログラム]]([[アルゴリズム]])の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。
 
8 ⟶ 9行目:
 
データ構造は専門的な、あるいは非専門的な(すなわち、あらゆる)プログラミングにとって非常に重要なので、C++における[[Standard Template Library|STL]]や、Java API、および[[.NET Framework]]のような[[プログラミング言語]]の標準ライブラリや環境において多くのデータ構造がサポートされている。データ構造が[[実装]]を表すのか[[インタフェース (情報技術)|インターフェース]]を表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、[[データ型]]に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。
 
== 脚注 ==
<references/>
 
== 関連項目 ==