アルゴリズムとデータ構造 第2章 リスト構造 5月24日分

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
4.3 マージソート.
正規表現からのDFA直接構成.
計算の理論 I 文脈自由文法 月曜3校時 大月 美佳 平成15年6月30日 佐賀大学知能情報システム学科.
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
簡潔データ構造 国立情報学研究所 定兼 邦彦.
ラベル付き区間グラフを列挙するBDDとその応用
アルゴリズムとデータ構造 2013年6月18日
算法数理工学 第9回 定兼 邦彦.
On the Enumeration of Colored Trees
アルゴリズムとデータ構造 第2章 リスト構造 5月17日分
Problem G : Entangled Tree
アルゴリズムとデータ構造 2012年6月14日
データ構造とアルゴリズム 第7回 木 ~ データ構造(3)~.
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
大岩 元 慶応大学環境情報学部 二分木 データ構造とプログラミング(10) 大岩 元 慶応大学環境情報学部
Solving Shape-Analysis Problems in Languages with Destructive Updating
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
二分探索木によるサーチ.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
アルゴリズムとデータ構造 2011年7月4日
アルゴリズムとデータ構造 2012年6月28日
アルゴリズムとデータ構造 2011年6月27日
“Purely Functional Data Structures” セミナー
決定木とランダムフォレスト 和田 俊和.
二分木のメソッド(続き).
2011/06/21 情報知能学科「アルゴリズムとデータ構造」 担当:白井英俊
第14章 モデルの結合 修士2年 山川佳洋.
アルゴリズムとデータ構造勉強会 第6回 スレッド木
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
離散数学 07. 木 五島.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
計算の理論 II -講義内容説明と 基本事項確認ー
プログラミング 4 木構造とヒープ.
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
アルゴリズムとデータ構造 2011年7月8日課題の復習
第4章 データ構造 p.82 [誤] ハミルトニアン経路問題  [正] ハミルトン閉路問題 p.82,83 [誤] セールスパーソン問題
15.cons と種々のデータ構造.
アルゴリズムとデータ構造 第2章 リスト構造 5月20日分
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
情報知能学科「アルゴリズムとデータ構造」
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分の復習
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
第16章 動的計画法 アルゴリズムイントロダクション.
第9回 優先度つき待ち行列,ヒープ,二分探索木
アルゴリズムからプログラムへ GRAPH-SEARCH
アルゴリズムとデータ構造 2013年7月1日
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 2013年7月8日
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
奈良女子大集中講義 バイオインフォマティクス (7) 進化系統樹
計算の理論 I 文脈自由文法 月曜3校時 大月美佳.
ヒープソート.
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
7.木構造 7-1.データ構造としての木 7-2.2分探索木 7-3.高度な木.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
アルゴリズムとデータ構造 2012年7月9日
Presentation transcript:

アルゴリズムとデータ構造 第2章 リスト構造 5月24日分 アルゴリズムとデータ構造 第2章 リスト構造 5月24日分 情報知能学科 白井英俊

リストの応用(1) 二重線形リスト構造 線形リスト構造:ポインタが一つ 次のようなセルをつなぐことで実現 二重線形リスト構造:ポインタは二つ   次のようなセルをつなぐことで実現 二重線形リスト構造:ポインタは二つ data データ部 next ポインタ prec ポインタ data データ部 next ポインタ

二重線形リスト構造(続) 線形リスト構造 二重線形リスト構造 後続のセルだけ、たどることが可能 後続のセルだけではなく、その前のセルもたどることが可能

リストの応用(2) 木構造 根つき木、もしくは木構造 (1) 頂点と辺とから作られる 頂点: vertex, node, ノード、節点、…  (1) 頂点と辺とから作られる   頂点: vertex, node, ノード、節点、… 辺: edge, arc, アーク、枝、…  木はグラフの一種。 頂点は  、辺は  や      で表す (2) 根(root) という特別な頂点がただ一つある

木構造(続) パス(道):頂点と頂点を結ぶ辺の集合 根は特別な頂点 根から、他のどの頂点へも辺をたどっていくことができる 木とグラフの違い  根から、他のどの頂点へも辺をたどっていくことができる 木とグラフの違い   頂点から別な頂点へのサイクルがない(同じ頂点同士を結ぶ複数のパスが存在しない) グラフ理論の用語

木とグラフの違い グラフ: 『根』のような特殊な頂点はない。v0 からv4へは、v1を通っても、v2を通ってもいける(複数のパスがある)。

木の用語 v0 v1 v3 v2 v4 v6 v5 v8 v7 親と子 (例: v1とv4)  2つの頂点が結ばれているとき、上の頂点を親(parent)、下の頂点を子(son)、という v1 v3 v2 v4 v6 v5  兄弟(例:v4とv5)  同じ親を持つ子頂点同士を兄 弟(brother)、という v8 v7 最も左の子を、第一子(first child)という ( 例: v1の第一子はv4、v5の第一子はv7 ) 右隣の兄弟を、次の兄弟(next brother)、という( 例: v1の次の兄弟はv2、v2の次の兄弟はv3 ) 葉(leaf): 子を持たない頂点(例: v2, v3, v4, v7, …)

木の用語の確認 試験の頻出問題 v0 v1 v3 v2 v4 v5 v8 v7 v6 v9 v10 定義:頂点xの「先祖」とは、xの親頂点すべて、およびxの親頂点の先祖すべて(再帰的な定義) 定義:頂点xの「子孫」とは、xの子頂点すべて、およびxの子頂点の子孫すべて(再帰的な定義) v0 v1 v3 v2 v4 v5 v8 v7 v6 v9 v10

木の表現 線形リスト構造を、セル(の集まり)で表したように、木構造を次のようなデータ構造(ノードと呼ぶ)で表す class Node def initialize(u,v,w,x) @label = u @parent = v @firstChild = w @nextBrother = x end @parent @firstChild self

木の表現(続) クラスNodeを図示すると、次のようになる 頂点 親頂点 兄弟頂点 子頂点 label (ラベル) parent (親) 一個一個が以下の構造をもつ 親頂点 label (ラベル) parent (親) firstChild(第一子) nextBrother(次の兄弟) @parent @firstChild self @nextBrother 兄弟頂点 子頂点

練習:木の表現 右の木をNodeクラスを用いて表す v0 v1 v3 v2 v4 v6 v5 それには、7つのNodeインスタンスが必要…一つの頂点が一つのNodeインスタンスに対応 v1 v3 v2 v4 v6 v5 根の頂点 v0 の表現 ラベル v0 nil 親頂点 頂点 v1 第一子 nil 次の兄弟

練習:木の表現(続) v0 v1 v3 v2 v4 v6 v5 根の頂点 v0 の表現 v0 nil nil 頂点 v1 v1 頂点 v2 ラベル nil 親頂点 v1 v3 第一子 v2 nil 次の兄弟 v4 v6 v5 頂点 v1 ラベル v1 親頂点 第一子 次の兄弟 頂点 v2 頂点 v4

練習:木の表現(続) v0 v3 v1 v2 v6 v4 v5 v0 nil nil v1 v2 v4 v5 nil ラベル 親頂点 第一子 次の兄弟 ラベル v1 ラベル v2 親頂点 親頂点 第一子 第一子 次の兄弟 次の兄弟 v4 ラベル v5 ラベル 親頂点 親頂点 nil 第一子 第一子 次の兄弟 次の兄弟

練習:木の表現を完成させよう v0 v3 v1 v2 v6 v4 v5 v0 nil nil v1 v2 v3 nil v5 v6 v4 ラベル nil 親頂点 第一子 nil 次の兄弟 ラベル v1 v2 ラベル 親頂点 第一子 次の兄弟 v3 ラベル 親頂点 第一子 次の兄弟 親頂点 nil 第一子 次の兄弟 v5 ラベル 親頂点 第一子 次の兄弟 v6 ラベル 親頂点 第一子 次の兄弟 v4 ラベル nil 親頂点 nil 第一子 次の兄弟