More Related Content
PPTX
PDF
PDF
PDF
PDF
PPTX
PDF
PPTX
Viewers also liked
PDF
Code igniterを初めて使うときにはまった4つのポイント(ノーマル版) PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Code igniterを初めて使うときにはまった4つのポイント PDF
PDF
Similar to アルゴリズム+データ構造勉強会(9)
PPTX
PPTX
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx ODP
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜 PDF
PDF
programming camp 2008, introduction of programming, algorithm PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PPTX
PDF
PDF
超初心者向け!Php勉強法とプログラミングの基礎の基礎 PDF
PDF
PDF
OSC2012 Tokyo Spring, USP lab. presentation アルゴリズム+データ構造勉強会(9)
- 1.
- 2.
- 3.
配列とは
• http://www.php.net/manual/ja/language.types.array.php
• PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、
値をキーに関連付けます。 この型は、いくつかの手法で最適化されます。こ
のため、 実際の配列またはリスト (ベクトル)、(あるマップの実装である) ハッ
シュテーブル、ディレクトリ、コレクション、スタック、 キュー等として使用する
ことが可能です。 PHP の配列には他の PHP 配列を値として保持することが
できるため、 非常に簡単にツリー構造を表現することが可能です。
• (キュー=待ち行列)
• PHPの場合、すべて配列として実装されている
• 使い方を覚えればOK
- 4.
- 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
• 一通りできるが、使い勝手は悪い
• 目的に沿った、特化したものを使う⇒たとえばスタック、待ち行列
- 7.
- 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’; のような追加方法もある
- 9.
- 10.
- 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()という専用関数がある
- 12.
- 13.
- 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
• 勉強会の残り時間を使って書いてください。時間のある限り質問を
受け付けます
• できあがったら提出してください
• 時間に間に合わない場合は宿題にします
- 15.