情報数理Ⅱ 第11章 データ構造 平成29年1月18日.

Slides:



Advertisements
Similar presentations
データ構造とプログラミング技 法 (第3回) ー木構造ー. 木構造 (1) 根( root )と呼ばれる節 R が、 1 つだけ含まれ る。 R … TmTm T1T1 木構造: 1 個以上の節の有限集合 T であり、 次の二つの条件を満足するもの (2) 根以外の節は、 m (≧ 0 )個の互いに素な部.
Advertisements

基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
2 分探索木 Binary Search Tree 実行可能な操作 計算量 木の高さは,最悪 O(n) n = |A| : 要素の個数
5.データ構造入門 5-1.連結リスト(Linked List) 5-2.スタック(Stack) 5-3.キュー(Queue)
アルゴリズムとデータ構造 2013年6月18日
アルゴリズムとデータ構造1 2005年7月8日
アルゴリズムとデータ構造 2010年7月5日
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
2章 データ構造.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
アルゴリズムとデータ構造 2012年6月14日
情報工学概論 (アルゴリズムとデータ構造)
データ構造とアルゴリズム 第7回 木 ~ データ構造(3)~.
データ構造とアルゴリズム論 第9章 木構造 平成16年12月21日 森田 彦.
オペレーティングシステムJ/K 2004年11月4日
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムと データ構造 第4回 スタック・キュー.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
大岩 元 慶応大学環境情報学部 二分木 データ構造とプログラミング(10) 大岩 元 慶応大学環境情報学部
アルゴリズムとデータ構造 2011年6月14日
プログラミング 平成24年10月30日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング 平成25年11月5日 森田 彦.
Cプログラミング演習 中間まとめ2.
アルゴリズムとデータ構造1 2005年7月26日
アルゴリズムとデータ構造1 2006年7月4日
データ構造とアルゴリズム 第6回 キュー ~ データ構造(2)~.
アルゴリズムとデータ構造1 2006年6月16日
データ構造と アルゴリズム第4回 知能情報学メジャー 和田俊和.
データ構造とアルゴリズム 担当:和田俊和 居室:A603 講義資料等は下記を参照してください.
データ構造とアルゴリズム (第3回) ー木構造ー.
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
プログラミング 4 木構造とヒープ.
プログラミング 3 スタックとキュー.
明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回
アルゴリズムとデータ構造 2011年7月8日課題の復習
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
6.データ構造入門 6-1.連結リスト(Linked List) 6-2.スタック(Stack) 6-3.キュー(Queue)
15.cons と種々のデータ構造.
データ構造とアルゴリズム 第11回 リスト構造(1)
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分の復習
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
第9回 優先度つき待ち行列,ヒープ,二分探索木
ハフマン符号長の効率的な求め方.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムとデータ構造 2011年6月16日
オペレーティングシステムJ/K (管理のためのデータ構造)
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造1 2009年7月2日
第11回放送授業.
アルゴリズムとデータ構造 第2章 リスト構造 5月24日分
平面走査法を使った 一般線分の 交点列挙アルゴリズム
pf-6. スタック (Python プログラミング基礎を演習で学ぶシリーズ)
アルゴリズムとデータ構造 2013年6月20日
データ構造とアルゴリズム論 第9章 連結リスト
データ構造と アルゴリズムI 第三回 知能情報学部 新田直也.
7.木構造 7-1.データ構造としての木 7-2.2分探索木 7-3.高度な木.
Presentation transcript:

情報数理Ⅱ 第11章 データ構造 平成29年1月18日

本日の学習内容と目的 <学習内容> <目的> リスト構造 スタックとキュー 木構造 プログラミングの世界で使われる代表的なデータ構造の性質 とその活用方法を理解する。

1.リスト構造 1-1 アドレスとポインタ 1-2 線形リスト 1-3 セルの挿入・削除 1-4 双方向リスト・環状リスト 

1-1 アドレスとポインタ アドレス ポインタ → コンピュータ・メモリ データの保管場所 メモリ上の記憶位置 ↓ アドレスを指定する変数 1-1 アドレスとポインタ データの保管場所 → コンピュータ・メモリ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 25 15.5 true メモリ上の記憶位置 ↓ アドレス 変数A 変数B 変数C アドレスを指定する変数 ↓ ポインタ 1 ポインタA 例)ポインタの値が1→変数A(25)を指す

1-2 線形リスト 線形リスト データ部とポインタから構成されるデータのセットを考える。 →セルと呼ばれる 要素(セル)の 挿入・削除が容易 1-2 線形リスト データ部とポインタから構成されるデータのセットを考える。 →セルと呼ばれる データ ポインタ ポインタは他のセルのアドレスを指定できる。 データ1 データ3 データ2 要素(セル)の 挿入・削除が容易 線形リスト ポインタによってつながれたリスト → 

1-3 セルの挿入・削除 <セルの挿入> 配列の場合 ※「データ1」はD1と略記 D3の入ったセルの次にDXの入ったセルを挿入。 1-3 セルの挿入・削除 <セルの挿入> 配列の場合 D1 D2 D3 D4 D5 ※「データ1」はD1と略記 D3の入ったセルの次にDXの入ったセルを挿入。 1.「データX」の入ったセルを生成する。 3.D3セルのポインタがDXセルを指すようにする。 2.DXセルのポインタがD4セルを指すようにする。 D1 D2 D3 D4 D5 DX D3セルのポインタ以外は変更していない!

1-3 セルの挿入・削除 <セルの削除> 【基礎課題12-1】 ※「データ1」はD1と略記 D4の入ったセルを削除する。 1-3 セルの挿入・削除 <セルの削除> 【基礎課題12-1】 D1 D2 D3 D4 D5 ※「データ1」はD1と略記 D4の入ったセルを削除する。 3.D3セルのポインタがD5セルを指すようにする。 D1 D2 D3 D4 D5 D4セルはリストから外れる! D3セルのポインタ以外は変更していない!

例題 花形→伊達→轟→鮎原 5 3 轟次郎 5 3 次は、就職面接の順番を線形リストで表したものです。空欄を埋めて下さい。 先頭へのポインタ アドレス データ ポインタ 1 花形満 3 2 鮎原こずえ 伊達直人 4 轟次郎 5 矢吹丈 1 5 3 轟次郎 ① 3番目の面接者は(           )さんです。 ② 花形さんの次に矢吹さんを入れるには、花形さんのポインタを(   )に、矢吹さんのポインタを(    )にします。 5 3

1-4 双方向リスト・環状リスト 双方向リスト 環状リスト 【基礎課題12-2】 1-4 双方向リスト・環状リスト 【基礎課題12-2】 双方向リスト 次のデータへのポインタに加えて、前のデータへのポインタも持ってい るリスト構造 環状リスト  全てのデータが環状につながっているリスト構造 D1 D2 D3 D4 D5 D1 D2 D3 D4 D5

2.スタックとキュー 2-1 スタック構造 スタックとは? 用語の説明 例題 2-2 キュー構造 キューとは?

2-1 スタック構造 スタックとは? 挿入と削除がリスト(データの並び)の先頭に限って行われるデータ構造 挿入 削除(取り出し) 2-1 スタック構造 スタックとは? 挿入と削除がリスト(データの並び)の先頭に限って行われるデータ構造 挿入 上から順に入れて行く。 削除(取り出し) 上から順に取り出す。 新聞ラック

用語の説明 push pop 【基礎課題12-3】 データを加える操作 データを取り出す操作 頂上(top) 底(bottom) データ2 データ1 データ3 データ4 データ4 頂上(top) データ3 データ2 データ1 底(bottom) データ1→データ2→データ3→データ4の順にpush データ4→データ3→データ2→データ1の順にpop

C 例題 スタックに、文字A、B、C、Dを順にpushした場合、2回目のpopで取り出せる文字は何ですか? D C B A 【基礎課題12-4】、【基礎課題12-5】 スタックに、文字A、B、C、Dを順にpushした場合、2回目のpopで取り出せる文字は何ですか? C D C B A

2-2 キュー構造 キューとは? 挿入 削除(取り出し) 2-2 キュー構造 キューとは? 挿入は末尾、そして削除は先頭のデータに対してのみ行われるデータ構造→待ち行列とも言う 先頭 末尾 挿入 末尾から順に加わる。 削除(取り出し) 先頭から順に出て行く。

用語の説明 加列(enqueue:エンキュー) 除列(dequeue:デキュー) 【基礎課題12-6】 データを加える操作 データを取り出す操作 加列(enqueue:エンキュー) 除列(dequeue:デキュー) データ1 先頭(front) 用語の説明 データ2 データ3 データ4 データ3 データ2 データ1 末尾(rear) データ4 データ1→データ2→データ3→データ4の順に加列 データ1→データ2→データ3→データ4の順に除列

B 例題 キューに、文字A、B、C、Dがこの順で保管されています。このとき、2回目に取り出せる文字は何ですか? A B C D 【基礎課題12-7】、【基礎課題12-8】 キューに、文字A、B、C、Dがこの順で保管されています。このとき、2回目に取り出せる文字は何ですか? B A B C D

3.木構造 3-1 木構造とは? 3-2 用語の説明 3-3 2分木 3-4 2分木の走査方法

3-1 木構造とは? 線形リストは順序(のみ)を表現するデータ構造 木構造は、階層構造を表現できるデータ構造

3-2 用語の説明 2分木:ノードから分岐する枝が2本以下の木構造 枝 根 葉 ①~⑦:ノード(節) 1 2 4 5 6 7 3 部分木 3-2 用語の説明 枝 根 ①~⑦:ノード(節) 1 2 4 5 6 7 3 部分木 親ノード 子ノード 葉 2分木:ノードから分岐する枝が2本以下の木構造

3-3 2分探索木 左の子ノード<親ノード<右の子ノード <例> データの探索に便利→ 2分探索が容易にできる。 【基礎課題12-9】 3-3 2分探索木 【基礎課題12-9】 ノードに入っているデータの値が次の関係を満たしている2分木   左の子ノード<親ノード<右の子ノード <例> ※ 数字はノードが持つ値 4 1 3 2 5 6 7 データの探索に便利→ 2分探索が容易にできる。

3-4 2分木の走査方法 行きがけ順(前順) 通りがけ順(間順) 帰りがけ順(後順) 根に立ち寄る。 左部分木をなぞる。 右部分木をなぞる。 3-4 2分木の走査方法 行きがけ順(前順) 通りがけ順(間順) 帰りがけ順(後順) 根に立ち寄る。 左部分木をなぞる。 右部分木をなぞる。 ②→①→③ ①→②→③ ①→③→② 2 1 3

例題 d →b →a →c →e →f a→b→c→d→e→f a→c→b→f→e→d 【基礎課題12-10】 (1)行きがけ順になぞった時の順番は? d a c b e f d →b →a →c →e →f (2)通りがけ順になぞった時の順番は? a→b→c→d→e→f (3)帰りがけ順になぞった時の順番は? a→c→b→f→e→d

配列の挿入 A A[4]にデータXを挿入する。 1.A[6]を用意する。 2.「データ5」をA[6]へ移動。 [1] [2] [3] [4] [5] A データ1 データ2 データ3 データ4 データ5 A[4]にデータXを挿入する。 1.A[6]を用意する。 2.「データ5」をA[6]へ移動。 3.「データ4」をA[5]へ移動。 4.「データX」をA[4]へ代入。 [1] [2] [3] [4] [5] データ1 データ2 データ3 データ4 データ5 [5] データ4 [4] [6] データ5 [5] [6] A データX 挿入位置以降の要素をずらす必要がある!

学生成績簿の場合 S04001 花形満 55 ・・・ S04002 轟次郎 68 ・・・ S04003 早川みどり 85 ・・・ 学籍番号順に連なる線形リスト(あるいは配列)として表現できる。

Windowsフォルダ構成 ローカルディスク(C:) Documents and Settings Drivers VIDEO MODEM NETWORK Administrator hiko HXFSETUP.EXE ONBOARD My Documents Cookies デスクトップ ProgJava マイピクチャ 木構造:データの検索が容易になる。