Contenu connexe
Similaire à アルゴリズム+データ構造勉強会(9)
Similaire à アルゴリズム+データ構造勉強会(9) (7)
アルゴリズム+データ構造勉強会(9)
- 3. 配列とは
• http://www.php.net/manual/ja/language.types.array.php
• PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、
値をキーに関連付けます。 この型は、いくつかの手法で最適化されます。こ
のため、 実際の配列またはリスト (ベクトル)、(あるマップの実装である) ハッ
シュテーブル、ディレクトリ、コレクション、スタック、 キュー等として使用する
ことが可能です。 PHP の配列には他の PHP 配列を値として保持することが
できるため、 非常に簡単にツリー構造を表現することが可能です。
• (キュー=待ち行列)
• PHPの場合、すべて配列として実装されている
• 使い方を覚えればOK
- 5. リストの操作を改めて整理する
No. 操作
1 K番目の要素の前に要素を挿入する
2 K番目の要素を削除する
3 K番目の要素の内容を読む/書く
4 特定のキーを持つ要素を探索する
5 複数のリストを1つにまとめる
6 1つのリストを複数に分割する
7 リストの複製を作る
8 リストに含まれる要素の数を求める
「定本 Cプログラマのためのアルゴリズムとデータ構造」より
- 6. PHPでのリストの操作
No. 操作 PHPでの操作
1 K番目の要素の前に要素を挿入する array_splice()
2 K番目の要素を削除する array_splice()
3 K番目の要素の内容を読む/書く $array[$k]
4 特定のキーを持つ要素を探索する in_array()、foreach
5 複数のリストを1つにまとめる array_merge()、+演算子
6 1つのリストを複数に分割する array_slice()、array_chunk()
7 リストの複製を作る =演算子
8 リストに含まれる要素の数を求める count
• 一通りできるが、使い勝手は悪い
• 目的に沿った、特化したものを使う⇒たとえばスタック、待ち行列
- 8. スタックの操作
No. 操作 スタックの操作 PHPでの操作
1 K番目の要素の前に要素を挿入する リストの最後に要素を追加する array_push()、$stack[]
2 K番目の要素を削除する リストの最後の要素を取り出す array_pop()
3 K番目の要素の内容を読む/書く リストの最後の要素を取り出す array_pop() /array_push()
4 特定のキーを持つ要素を探索する (しない) -
5 複数のリストを1つにまとめる (しない) -
6 1つのリストを複数に分割する (しない) -
7 リストの複製を作る (同じ) =演算子
8 リストに含まれる要素の数を求める (同じ) count
• array_push()、array_pop()という専用関数がある
• $stack[] = ‘foo’; のような追加方法もある
- 11. 待ち行列(キュー)の操作
No. 操作 キューの操作 PHPでの操作
1 K番目の要素の前に要素を挿入する リストの最後に要素を追加する array_push()
2 K番目の要素を削除する リストの最初の要素を取り出す array_shift()
3 K番目の要素の内容を読む/書く リストの最初の要素を取り出す array_shift() /array_push()
4 特定のキーを持つ要素を探索する (しない) -
5 複数のリストを1つにまとめる (しない) -
6 1つのリストを複数に分割する (しない) -
7 リストの複製を作る (同じ) =演算子
8 リストに含まれる要素の数を求める (同じ) Count
• array_shift()、 array_push()という専用関数がある
- 14. 実習:スタックの利用
• スタックを使って「逆ポーランド記法」の電卓を作成してください
• 計算式は「1 2 + 4 5 + *」
• 考え方はwikipediaの「逆ポーランド記法」の「計算動作の例」にあります
• http://ja.wikipedia.org/wiki/%E9%80%86%E3%83%9D%E3%83%BC%E3%83%
A9%E3%83%B3%E3%83%89%E8%A8%98%E6%B3%95
• 勉強会の残り時間を使って書いてください。時間のある限り質問を
受け付けます
• できあがったら提出してください
• 時間に間に合わない場合は宿題にします