回答編集履歴
1
a
answer
CHANGED
@@ -45,4 +45,25 @@
|
|
45
45
|
|
46
46
|
```
|
47
47
|
|
48
|
-

|
48
|
+

|
49
|
+
|
50
|
+
## 追記
|
51
|
+
|
52
|
+
標準ライブラリのみを使った隣接リスト作成の例
|
53
|
+
|
54
|
+
```python
|
55
|
+
edges = [(1, 2), (2, 1), (1, 4), (4, 1), (2, 4), (4, 2),
|
56
|
+
(4, 3), (3, 4), (4, 5), (5, 4), (3, 5), (5, 3)]
|
57
|
+
|
58
|
+
adj_list = {}
|
59
|
+
from itertools import groupby
|
60
|
+
for key, group in groupby(sorted(edges), key=lambda x: x[0]):
|
61
|
+
conn_to = [g[1] for g in group] # edge=key が接続しているノード一覧
|
62
|
+
adj_list[key] = conn_to
|
63
|
+
|
64
|
+
print(adj_list)
|
65
|
+
```
|
66
|
+
|
67
|
+
```
|
68
|
+
{1: [2, 4], 2: [1, 4], 3: [4, 5], 4: [1, 2, 3, 5], 5: [3, 4]}
|
69
|
+
```
|