![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
まあ構造としては「木はグラフの特殊なもの」「パスは木の特殊なもの」なので
グラフ構造 > 木構造 > リスト構造
ではありますが, 普通はそれぞれ適切なものを使うと思います. リストを表現するときにグラフ構造を使うことは可能かもしれないけど, かなり無駄な感じ.
回答ありがとうございます。
なんかちゃんと定義されていないのって気持ち悪いんですよねぇ。
スッキリするまでグラフ理論を勉強しようと思います。
ありがとうございました。
No.1
- 回答日時:
・map
「キーと値のペア」の集まりで、キーに対して値が一意に定まるもの(キーの重複が許されないもの)。
値の重複は許されるので、一対一だけでなく多対1の関係も含みます。
・set
値の集まりで、値の重複が許されないもの。
mapにおけるキーと値をひとかたまりとみなせば、同じようなもの、と考えることもできると思います。
数学で言うところの集合→set、写像→mapでよいと思います。
・table/list
mapとsetが論理的で、機能に言及した分類(どのような制約があるか等)であることに比較すると、table/listは、実装方法による分類というイメージになります。
キーや値の重複を許す/許さないといった点には言及せず、計算コスト(特定の値を持つ要素を見つけるのにどれだけ時間がかかるか等)が(データ構造の)利用者から見えるものとして定められます。
すごく実装を意識して説明すると、
・table
値の集まりで、値が連続的な領域に配置されているもの。
(連続的な領域に配置されていて、位置が既知のため)任意の値にダイレクトにアクセスできる。
映画館の座席の番号とか、マンションの部屋番号とか、番号が分かれば位置が直接特定できるようなイメージです。
・list
値(要素)の集まりで、ある要素からは、その近隣(次、とか前とか)の要素にしかアクセスできない。
一般に、鎖状(1次元)の構造を成す。
よいイメージが思いつきませんが。。。
車内に路線図のない路線バスに乗って「次は○○です」といわれるのを聞きながら目的地に到達するような感じです。。分かりづらいですね^^;;
参考までに、、
機能的な面に着目したデータ構造というと、他にはキューやスタックなどがあります。
実装、構造に着目したデータ構造というと、他には木(tree)構造やグラフがあります。
C++を勉強中でしたら、標準テンプレートライブラリ(STL)の書籍等で分かりやすく説明されているのではと思います。
この回答への補足
もう一つ疑問なのですが、
リスト構造はツリー構造の一種なのでしょうか?
○<->○<->○<->○
分類すると
グラフ > ツリー構造 > リスト構造
なのでしょうか?
回答して頂いて大変あつかましいのですが、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- 英語 日本人で、英語がネイティブ並みに理解できたり、話せる方に質問です。 英語を聞いて理解するまでに、一度 4 2022/11/16 00:30
- 英語 We have Lee but you don't have 2 2023/03/13 03:35
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Google Maps iOS でのgoogle map の地図を写真で表示する方法を教えて下さい。 Windows でgo 2 2023/06/02 09:56
- 英語 Outcomes were evaluated including survival rate an 3 2022/04/14 14:16
- 英語 英語表現について教えてください。 ⑴ SVOOの文構造を取らない動詞を1つ選びなさい。 一、cook 2 2022/05/06 14:57
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- 英語 中二の英語についてです。 私は地図を描くのに紙が1枚必要です。 I need a sheet of 5 2022/08/19 17:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
数字の位ごとの値を表示するプ...
-
long型のランダムな値を返す方法
-
4択問題のプログラムでランダム...
-
足して100になるような乱数のア...
-
フォームを開くときに、コンボ...
-
エラーの意味は? Lvalue req...
-
配列の座標指定について。
-
VBAでダブルコーテーション入り...
-
正規表現で、英数記号を含むパ...
-
配列の値を置換するにはどうす...
-
for the first timeとfirst tim...
-
[VBS]変数を定数に変換する方法...
-
インクリメント演算子の前置(+...
-
Excel VBAでイコール二回使えま...
-
c言語 プログラミング 等比数列...
-
Accessで文字列のバイト数読み込み
-
ファイルの特定行を取り出したい.
-
平均、最大値、最小値を表示す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
エクセルのマクロについて教え...
-
VB6.0-整数と余りを求める
-
足して100になるような乱数のア...
-
数字の位ごとの値を表示するプ...
-
VBAで配列のNULL判定
-
世界のナベアツ
-
ラジオボタンの値の取得につい...
-
相関係数p値の出し方
-
1つ前の値を変数に保存する方法
-
VBAの定数の使い方で、計算値を...
-
DWORDって
-
4択問題のプログラムでランダム...
-
Access2003 オートナンバーの現...
-
C#で動的にコントロールを取得...
-
スピンボタンで小数点
-
UWSCのcallについて
-
フリーランタイマーの時間差分...
おすすめ情報