ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

抽象データ型

索引 抽象データ型

抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.

17 関係: AVL木二分木バーバラ・リスコフデータ構造制御構造アントニー・ホーアエドガー・ダイクストラオーレ=ヨハン・ダールジョセフ・ゴーグエンC++CLU計算複雑性理論赤黒木JavaSimula構造化プログラミング有理数

AVL木

AVL木の例 AVL木(えーぶいえるき、AVL tree、Adelson-Velskii and Landis' tree)とは、コンピュータサイエンスにおいて、「どのノードの左右部分木の高さの差も1以下」という条件を満たす2分探索木のことである。 平衡2分探索木の1つで、木に対する操作によって条件を満たさないノードが発生しても、回転と呼ばれる操作を行うだけで木をAVL木に再構成でき、平衡を維持できる。 AVL木は最初に考案された平衡2分探索木であり、その名は1962年に論文を発表したソ連の2人の数学者、とに由来する。.

新しい!!: 抽象データ型とAVL木 · 続きを見る »

二分木

二分木(binary tree; 二進木、バイナリツリー)は、データ構造の1つである。根付き木構造の中で、あるノード(節点 node)が持つ子の数が高々2であるものをいう。典型的には2つの子はそれぞれ「左」「右」と呼ばれる。 たとえば、二分探索や二分ヒープを実装するために使われる。 簡単な二分木。大きさ9、深さ3、根は値2を持つ 以後、括弧の中は英語表記。.

新しい!!: 抽象データ型と二分木 · 続きを見る »

バーバラ・リスコフ

バーバラ・リスコフ(Barbara Liskov、1939年11月7日 - )はアメリカ合衆国の計算機科学者。MITの電気工学/計算機科学部門の教授を務めている。.

新しい!!: 抽象データ型とバーバラ・リスコフ · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: 抽象データ型とデータ構造 · 続きを見る »

制御構造

制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。.

新しい!!: 抽象データ型と制御構造 · 続きを見る »

アントニー・ホーア

チャールズ・アントニー・リチャード・ホーア(Charles Antony Richard Hoare、1934年1月11日 - )はイギリスの計算機科学者。通称はトニー・ホーア(Tony Hoare)またはC・A・R・ホーア。 クイックソート(一般的な場合には最も性能の良い実装ができるとされるソートアルゴリズム)の考案でも知られるが、専門的な業績としては、ホーア論理や、並行プロセスを形式記述するCommunicating Sequential Processes(CSP)などがある。CSPはプログラミング言語Occamに示唆を与えた。.

新しい!!: 抽象データ型とアントニー・ホーア · 続きを見る »

エドガー・ダイクストラ

ドガー・ダイクストラ(Edsger Wybe Dijkstra, 1930年5月11日 - 2002年8月6日)は、オランダ人の計算機科学者。1972年、プログラミング言語の基礎研究への貢献に対してチューリング賞を受賞。構造化プログラミングの提唱者。1984年から2002年に亡くなるまでテキサス大学オースティン校の計算機科学の Schlumberger Centennial Chair を務めた。 2002年の死の直前、プログラム計算のについての仕事に対して ACM PODC Influential Paper Award を授与された。この賞は翌年からダイクストラを称えてと呼ばれるようになった。 エズガー・ダイクストラと表記されることもある。オランダ語での発音は、IPA表記で で、エツハー・ウィベ・デイクストラに近い。.

新しい!!: 抽象データ型とエドガー・ダイクストラ · 続きを見る »

オーレ=ヨハン・ダール

ーレ=ヨハン・ダール(Ole-Johan Dahl, 1931年10月12日 - 2002年6月29日)は、ノルウェー人の計算機科学者。クリステン・ニゴールと共同で、オブジェクト指向の起源となるSimulaを開発したことで知られる。オルヨハン・ダールと表記されることもあるが、ノルウェー語の発音としては正しくない。.

新しい!!: 抽象データ型とオーレ=ヨハン・ダール · 続きを見る »

ジョセフ・ゴーグエン

ョセフ・アマディ・ゴーグエン(Joseph Amadee Goguen、1941年6月28日 - 2006年7月3日)は、アメリカ合衆国の計算機科学者。.

新しい!!: 抽象データ型とジョセフ・ゴーグエン · 続きを見る »

C++

C++(シープラスプラス)は、汎用プログラミング言語の一つである。日本語では略してシープラプラ、シープラなどとも呼ばれる。.

新しい!!: 抽象データ型とC++ · 続きを見る »

CLU

CLU は、1974年から1975年にかけてMITのバーバラ・リスコフが学生らと共に開発したプログラミング言語である。抽象データ型のコンストラクタ(操作コードを含む)を備えており、オブジェクト指向プログラミングへの重要なステップとなった。しかし、それ以外のオブジェクト指向の機能は欠けているか不完全であり、継承もなく、文法が扱いにくいことが欠点であった。CLU と Alphard はどちらも完全なオブジェクト指向言語となる可能性を秘めていたが、実際にはそうならなかった。.

新しい!!: 抽象データ型とCLU · 続きを見る »

計算複雑性理論

計算複雑性理論(けいさんふくざつせいりろん、computational complexity theory)とは、計算機科学における計算理論の一分野であり、アルゴリズムのスケーラビリティや、特定の計算問題の解法の複雑性(計算問題の困難さ)などを数学的に扱う。計算量理論、計算の複雑さの理論、計算複雑度の理論ともいう。.

新しい!!: 抽象データ型と計算複雑性理論 · 続きを見る »

赤黒木

赤黒木(あかくろぎ)は、コンピュータ科学のデータ構造である平衡二分木の一種で、主に連想配列の実装に用いられている。2色木、レッド・ブラック・ツリーともいう。 このデータ構造は1972年のルドルフ・ベイヤー (en:Rudolf Bayer) の発明である"symmetric binary B-trees"が元となっており、赤黒木という名前自体は 1978年にレオニダス・ギッバス (Leonidas J. Guibas) とロバート・セジウィック (en:Robert Sedgewick) によって発表された論文による。 赤黒木は、探索、挿入、削除などの操作における最悪時間計算量がO(log n)(nはツリーの要素数)と短く、複雑ではあるが実用的なデータ構造として知られている。 この日本語版は概要のみの解説であり、具体的なアルゴリズムはwikipedia英語版(Red-black_tree)に掲載されている。.

新しい!!: 抽象データ型と赤黒木 · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: 抽象データ型とJava · 続きを見る »

Simula

SIMULA(シミュラ; SIMUlation LAnguage)は、オルヨハン・ダールとクリステン・ニガードによってALGOL60を拡張する形で1960年代に開発が始められたシミュレーション用途のプログラミング言語である。 ALGOLのbegin...

新しい!!: 抽象データ型とSimula · 続きを見る »

構造化プログラミング

構造化プログラミング(こうぞうかプログラミング、structured programming)は、1960年代後半にエドガー・ダイクストラらによって提唱された、構造化されたプログラムの構成要素(制御構造)の利用や、 p.49)-->段階的詳細化などを特徴とするプログラミング手法である。.

新しい!!: 抽象データ型と構造化プログラミング · 続きを見る »

有理数

有理数(ゆうりすう、rational number) とは、二つの整数 a, b (ただし b は 0 でない)をもちいて a/b という分数で表せる数のことをいう。b.

新しい!!: 抽象データ型と有理数 · 続きを見る »

ここにリダイレクトされます:

データ抽象

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »