Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
グラフと木
グラフ
●頂点と辺の集合
●辺は頂点と頂点を結ぶ
●辺に向きがあるものを有向グラフ、向きのない
ものを無向グラフという
頂点
辺
無向グラフ
グラフ
●頂点と辺の集合
●辺は頂点と頂点を結ぶ
●辺に向きがあるものを有向グラフ、向きのない
ものを無向グラフという
頂点
辺
有向グラフ
グラフに関する用語
●道(パス):一続きの頂点の列
グラフに関する用語
●閉路(サイクル):始点と終点が同じパス
グラフに関する用語
●距離:2頂点を結ぶ最短の道の長さ
距離: 2
グラフに関する用語
●直径:距離の最大値
直径: 2
グラフに関する用語
●ループ:辺の両端が同じ頂点になっているもの
グラフに関する用語
●多重辺:辺の両端の組が等しい複数の辺
グラフに関する用語
●単純グラフ:ループも多重辺も無いグラフ
単純グラフでない
グラフに関する用語
●単純グラフ:ループも多重辺も無いグラフ
単純グラフである
グラフに関する用語
●連結グラフ:どの2点間にも道があるグラフ
連結でない
グラフに関する用語
●連結グラフ:どの2点間にも道があるグラフ
連結である
グラフに関する用語
●次数:頂点に接続している辺の本数
3
4
5
4
5
3
グラフに関する用語
●正則グラフ:全頂点の次数が等しいグラフ
4
4
4
4
4
4
グラフに関する用語
●完全グラフ:どの2点間にも辺があるグラフ
プログラムでグラフを扱う
●隣接行列
●頂点 から頂点 に伸びる辺の数を とする
●辺に情報がある場合、多重辺に対応できない
●メモリの制約上    ぐらいまでしか使えない
●実装は楽
●隣接リスト
●頂点 から伸びる辺のリストを  に格納する...
プログラムでグラフを扱う
●隣接行列
1
2
3
4
6
5
1 2 3 4 5 6
1 0 2 1 0 0 0
2 2 0 1 1 0 0
3 1 1 0 1 1 1
4 0 1 1 0 1 1
5 0 0 1 1 0 1
6 0 0 1 1...
プログラムでグラフを扱う
●隣接リスト
1
2
3
4
6
5
1 2,2,3
2 1,1,3,4
3 1,2,4,5,6
4 2,3,5,6
5 3,4,6
6 3,4,5,6
木
●閉路のない連結グラフを木という
●辺に向きがあるものを有向木、向きがないもの
を無向木という
根付き木
●頂点の一つを「根」とすることがある
●その頂点の一つ上の頂点を「親」、一つ下の頂
点を「子」と呼ぶ
根
親
子
根付き木の表現
●隣接行列、隣接リストを使う
●親の頂点番号を格納した配列でも表現できる
●図にすると根に向かう有向木
木における全探索
●根から子をたどっていく
●深さ優先探索、幅優先探索
●根のない場合は適当な頂点を根にする
グラフにおける全探索
●すでに通った場所を保存しておく配列を用意
●各頂点について通ったなら1、通ってないなら0
●すでに通った場所に行かないように注意すれ
ば、木と同じように全探索できる
Próxima SlideShare
Cargando en…5
×

グラフと木

3.011 visualizaciones

Publicado el

競技プログラミング練習会2014 Normalで使ったスライドです。グラフと木に関する用語についてまとめています。

Publicado en: Tecnología
  • Sé el primero en comentar

グラフと木

  1. 1. グラフと木
  2. 2. グラフ ●頂点と辺の集合 ●辺は頂点と頂点を結ぶ ●辺に向きがあるものを有向グラフ、向きのない ものを無向グラフという 頂点 辺 無向グラフ
  3. 3. グラフ ●頂点と辺の集合 ●辺は頂点と頂点を結ぶ ●辺に向きがあるものを有向グラフ、向きのない ものを無向グラフという 頂点 辺 有向グラフ
  4. 4. グラフに関する用語 ●道(パス):一続きの頂点の列
  5. 5. グラフに関する用語 ●閉路(サイクル):始点と終点が同じパス
  6. 6. グラフに関する用語 ●距離:2頂点を結ぶ最短の道の長さ 距離: 2
  7. 7. グラフに関する用語 ●直径:距離の最大値 直径: 2
  8. 8. グラフに関する用語 ●ループ:辺の両端が同じ頂点になっているもの
  9. 9. グラフに関する用語 ●多重辺:辺の両端の組が等しい複数の辺
  10. 10. グラフに関する用語 ●単純グラフ:ループも多重辺も無いグラフ 単純グラフでない
  11. 11. グラフに関する用語 ●単純グラフ:ループも多重辺も無いグラフ 単純グラフである
  12. 12. グラフに関する用語 ●連結グラフ:どの2点間にも道があるグラフ 連結でない
  13. 13. グラフに関する用語 ●連結グラフ:どの2点間にも道があるグラフ 連結である
  14. 14. グラフに関する用語 ●次数:頂点に接続している辺の本数 3 4 5 4 5 3
  15. 15. グラフに関する用語 ●正則グラフ:全頂点の次数が等しいグラフ 4 4 4 4 4 4
  16. 16. グラフに関する用語 ●完全グラフ:どの2点間にも辺があるグラフ
  17. 17. プログラムでグラフを扱う ●隣接行列 ●頂点 から頂点 に伸びる辺の数を とする ●辺に情報がある場合、多重辺に対応できない ●メモリの制約上    ぐらいまでしか使えない ●実装は楽 ●隣接リスト ●頂点 から伸びる辺のリストを  に格納する ●多重辺にも対応、頂点数が多くても大丈夫 i j aij n≤1000 i a[i]
  18. 18. プログラムでグラフを扱う ●隣接行列 1 2 3 4 6 5 1 2 3 4 5 6 1 0 2 1 0 0 0 2 2 0 1 1 0 0 3 1 1 0 1 1 1 4 0 1 1 0 1 1 5 0 0 1 1 0 1 6 0 0 1 1 1 1
  19. 19. プログラムでグラフを扱う ●隣接リスト 1 2 3 4 6 5 1 2,2,3 2 1,1,3,4 3 1,2,4,5,6 4 2,3,5,6 5 3,4,6 6 3,4,5,6
  20. 20. 木 ●閉路のない連結グラフを木という ●辺に向きがあるものを有向木、向きがないもの を無向木という
  21. 21. 根付き木 ●頂点の一つを「根」とすることがある ●その頂点の一つ上の頂点を「親」、一つ下の頂 点を「子」と呼ぶ 根 親 子
  22. 22. 根付き木の表現 ●隣接行列、隣接リストを使う ●親の頂点番号を格納した配列でも表現できる ●図にすると根に向かう有向木
  23. 23. 木における全探索 ●根から子をたどっていく ●深さ優先探索、幅優先探索 ●根のない場合は適当な頂点を根にする
  24. 24. グラフにおける全探索 ●すでに通った場所を保存しておく配列を用意 ●各頂点について通ったなら1、通ってないなら0 ●すでに通った場所に行かないように注意すれ ば、木と同じように全探索できる

×