dijkstra算法python
时间: 2023-08-01 08:08:52 浏览: 104
Dijkstra算法是一种用于计算单源最短路径的经典算法,用于计算一个节点到其他所有节点的最短路径。它以起始点为中心向外层层扩展,直到扩展到终点为止。该算法要求图中不存在负权边。在Python中,可以通过实现一个名为Graph的类来实现Dijkstra算法。这个类的构造函数可以如下定义:
```python
class Graph:
def __init__(self, num_of_vertices):
self.vertices = num_of_vertices # 节点数
self.edges = \[\[-1 for i in range(num_of_vertices)\] for j in range(num_of_vertices)\] # 距离表
self.visited = \[\] # 记录被访问过的节点
```
这个类中的`edges`列表用于存储节点之间的距离,`visited`列表用于记录已经被访问过的节点。通过实现这个类,可以使用Dijkstra算法来计算图中节点之间的最短路径。\[1\]\[2\]
#### 引用[.reference_title]
- *1* [Python实现dijkstra算法](https://blog.csdn.net/qq_62789540/article/details/126044970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Python 中的图:Dijkstra 算法](https://blog.csdn.net/weixin_53598445/article/details/124128791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文