mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-25 00:16:28 +08:00
Add build check with py_compile
This commit is contained in:
parent
1b9978998a
commit
b7c110e5ec
3 changed files with 19 additions and 2 deletions
17
codes/python/build.py
Normal file
17
codes/python/build.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
import glob
|
||||
import py_compile as pyc
|
||||
|
||||
src_paths = sorted(glob.glob("codes/python/**/*.py"))
|
||||
num_src = len(src_paths)
|
||||
num_src_error = 0
|
||||
|
||||
for src_path in src_paths:
|
||||
try:
|
||||
pyc.compile(src_path, doraise=True)
|
||||
except pyc.PyCompileError as e:
|
||||
num_src_error += 1
|
||||
print(e)
|
||||
|
||||
print(f"===== Build Summary =====")
|
||||
print(f"Total: {num_src}")
|
||||
print(f"Error: {num_src - num_src_error}")
|
|
@ -62,7 +62,7 @@
|
|||
- 为了方便添加与删除顶点,以及简化代码,我们使用列表(动态数组)来代替链表。
|
||||
- 使用哈希表来存储邻接表,`key` 为顶点实例,`value` 为该顶点的邻接顶点列表(链表)。
|
||||
|
||||
另外,我们在邻接表中使用 `Vertex` 类来表示顶点。这是因为如果与邻接矩阵一样用列表索引来区分不同顶点。那么假设想要删除索引为 $i$ 的顶点,则需要遍历整个邻接表,将所有大于 $i$ 的索引全部减 $1$ ,效率很低。而如果每个顶点都是唯一的 `Vertex` 实例,删除某一顶点之后就无须改动其他顶点了。
|
||||
另外,我们在邻接表中使用 `Vertex` 类来表示顶点,这样做的原因是:如果与邻接矩阵一样,用列表索引来区分不同顶点,那么假设要删除索引为 $i$ 的顶点,则需遍历整个邻接表,将所有大于 $i$ 的索引全部减 $1$ ,效率很低。而如果每个顶点都是唯一的 `Vertex` 实例,删除某一顶点之后就无须改动其他顶点了。
|
||||
|
||||
```src
|
||||
[file]{graph_adjacency_list}-[class]{graph_adj_list}-[func]{}
|
||||
|
|
Loading…
Reference in a new issue