|
1 |
| -## Матрица смежности |
| 1 | +## Матрица смежности - хранит связи вершин графа |
2 | 2 | ```
|
3 |
| - 1 +---+ | | A | B | C | D | E | |
4 |
| - +--------------+ B +--+ |---|---|---|---|---|---| |
5 |
| - | +---+ | | A | 0 | 1 | 1 | 0 | 1 | |
6 |
| - | | | B | 1 | 0 | 0 | 1 | 0 | |
7 |
| -+-+-+ 2 | | C | 1 | 0 | 0 | 1 | 0 | |
8 |
| -| A +----------+ |3 | D | 0 | 1 | 1 | 0 | 0 | |
9 |
| -+-+-+ | | | E | 1 | 0 | 0 | 0 | 0 | |
| 3 | + 1 +---+ const graph = [ |
| 4 | + +--------------+ B +--+ [0, 1, 1, 0, 1], |
| 5 | + | +---+ | [1, 0, 0, 1, 0], |
| 6 | + | | [1, 0, 0, 1, 0], |
| 7 | ++-+-+ 2 | [0, 1, 1, 0, 0], |
| 8 | +| A +----------+ |3 [1, 0, 0, 0, 0], |
| 9 | ++-+-+ | | ]; |
10 | 10 | | | |
|
11 |
| - | +-+-+ | |
12 |
| - |5 | C | | |
13 |
| - | +-+-+ | |
14 |
|
10000
- +--+ | | |
15 |
| - | | | |
16 |
| - +-+-+ 4 | +-+-+ |
17 |
| - | E | +------+ D | |
| 11 | + | +-+-+ | const graph = { |
| 12 | + |5 | C | | A: [0, 1, 1, 0, 1], |
| 13 | + | +-+-+ | B: [1, 0, 0, 1, 0], |
| 14 | + +--+ | | C: [1, 0, 0, 1, 0], |
| 15 | + | | | D: [0, 1, 1, 0, 0], |
| 16 | + +-+-+ 4 | +-+-+ E: [1, 0, 0, 0, 0], |
| 17 | + | E | +------+ D | }; |
18 | 18 | +---+ +---+
|
19 | 19 | ```
|
20 |
| -## Матрица инцидентности |
| 20 | +## Матрица смежности в виде плоского массива |
21 | 21 | ```
|
22 |
| - 1 +---+ | | 1 | 2 | 3 | 4 | 5 | |
23 |
| - +--------------+ B +--+ |---|---|---|---|---|---| |
24 |
| - | +---+ | | A | 1 | 1 | 0 | 0 | 1 | |
25 |
| - | | | B | 1 | 0 | 1 | 0 | 0 | |
26 |
| -+-+-+ 2 | | C | 0 | 1 | 0 | 1 | 0 | |
27 |
| -| A +----------+ |3 | D | 0 | 0 | 1 | 1 | 0 | |
28 |
| -+-+-+ | | | E | 0 | 0 | 0 | 0 | 1 | |
| 22 | + 1 +---+ const graph = [ |
| 23 | + +--------------+ B +--+ 0, 1, 1, 0, 1, |
| 24 | + | +---+ | 1, 0, 0, 1, 0, |
| 25 | + | | 1, 0, 0, 1, 0, |
| 26 | ++-+-+ 2 | 0, 1, 1, 0, 0, |
| 27 | +| A +----------+ |3 1, 0, 0, 0, 0, |
| 28 | ++-+-+ | | ]; |
29 | 29 | | | |
|
30 | 30 | | +-+-+ |
|
31 | 31 | |5 | C | |
|
|
36 | 36 | | E | +------+ D |
|
37 | 37 | +---+ +---+
|
38 | 38 | ```
|
39 |
| -## Список смежности |
| 39 | +## Матрица инцидентности - связь вершин (строки) с дугами (колонки) |
40 | 40 | ```
|
41 |
| - 1 +---+ |
42 |
| - +--------------+ B +--+ |
43 |
| - | +---+ | A: [B, C, E] |
44 |
| - | | B: [A, D] |
45 |
| -+-+-+ 2 | C: [A, D] |
46 |
| -| A +----------+ |3
10000
D: [B, C] |
47 |
| -+-+-+ | | E: [A] |
| 41 | + 1 +---+ const graph = [ |
| 42 | + +--------------+ B +--+ [1, 1, 0, 0, 1], |
| 43 | + | +---+ | [1, 0, 1, 0, 0], |
| 44 | + | | [0, 1, 0, 1, 0], |
| 45 | ++-+-+ 2 | [0, 0, 1, 1, 0], |
| 46 | +| A +----------+ |3 [0, 0, 0, 0, 1], |
| 47 | ++-+-+ | | ]; |
48 | 48 | | | |
|
49 |
| - | +-+-+ | |
50 |
| - |5 | C | | |
51 |
| - | +-+-+ | |
52 |
| - +--+ | | |
53 |
| - | | | |
54 |
| - +-+-+ 4 | +-+-+ |
55 |
| - | E | +------+ D | |
| 49 | + | +-+-+ | const graph = { |
| 50 | + |5 | C | | A: [1, 1, 0, 0, 1], |
| 51 | + | +-+-+ | B: [1, 0, 1, 0, 0], |
| 52 | + +--+ | | C: [0, 1, 0, 1, 0], |
| 53 | + | | | D: [0, 0, 1, 1, 0], |
| 54 | + +-+-+ 4 | +-+-+ E: [0, 0, 0, 0, 1], |
| 55 | + | E | +------+ D | ]; |
56 | 56 | +---+ +---+
|
57 | 57 | ```
|
58 |
| -## Список ребер |
| 58 | +## Список смежности - список вершин, для каждой списк смежных вершин |
59 | 59 | ```
|
60 |
| - 1 +---+ |
61 |
| - +--------------+ B +--+ |
62 |
| - | +---+ | 1: [A, B] |
63 |
| - | | 2: [A, C] |
64 |
| -+-+-+ 2 | 3: [B, D] |
65 |
| -| A +----------+ |3 4: [C, D] |
66 |
| -+-+-+ | | 5: [A, E] |
| 60 | + 1 +---+ const graph = { |
| 61 | + +--------------+ B +--+ A: [], |
| 62 | + | +---+ | B: [], |
| 63 | + | | C: [], |
| 64 | ++-+-+ 2 | D: [], |
| 65 | +| A +----------+ |3 E: [], |
| 66 | ++-+-+ | | }; |
67 | 67 | | | |
|
68 |
| - | +-+-+ | |
69 |
| - |5 | C | | |
70 |
| - | +-+-+ | |
71 |
| - +--+ | | |
72 |
| - | | | |
73 |
| - +-+-+ 4 | +-+-+ |
| 68 | + | +-+-+ | const { A, B, C, D, E } = graph; |
| 69 | + |5 | C | | A.push(B, C, E); |
| 70 | + | +-+-+ | B.push(A, D); |
| 71 | + +--+ | | C.push(A, D); |
| 72 | + | | | D.push(B, C); |
| 73 | + +-+-+ 4 | +-+-+ E.push(A); |
74 | 74 | | E | +------+ D |
|
| 75 | + +---+ +---+ console.dir({ graph }); |
| 76 | +``` |
| 77 | +## Список ребер - список с указанием ребра как пары вершин |
| 78 | +``` |
| 79 | + 1 +---+ const graph = [ |
| 80 | + +--------------+ B +--+ [A, B], |
| 81 | + | +---+ | [A, C], |
| 82 | + | | [B, D], |
| 83 | ++-+-+ 2 | [C, D], |
| 84 | +| A +----------+ |3 [A, E], |
| 85 | ++-+-+ | | ]; |
| 86 | + | | | |
| 87 | + | +-+-+ | const graph = [ |
| 88 | + |5 | C | | { from: A, to: B }, |
| 89 | + | +-+-+ | { from: A, to: C }, |
| 90 | + +--+ | | { from: B, to: D }, |
| 91 | + | | | { from: C, to: D }, |
| 92 | + +-+-+ 4 | +-+-+ { from: A, to: E }, |
| 93 | + | E | +------+ D | ]; |
75 | 94 | +---+ +---+
|
76 | 95 | ```
|
0 commit comments