In order to avoid the worst case, the more efficient Dijkstra algorithm should be used on the positive weight graph. If a given graph has negative weight edges, algorithms like Dijkstra's algorithm will be useless, and the SPFA algorithm will come in handy. In short, when there is no negative weight loop in the weighted directed graph D, the shortest path must exist. Use array d to record the shortest path estimate for each node, and use adjacency table to store graph D. The method we adopt is the dynamic approximation method: set up a first-in first-out queue to save the node to be optimized, and take out the first node u of the team every time during optimization, and use the current shortest path estimation value of u to leave u The pointed node v performs a relaxation operation. If the estimated shortest path of point v is adjusted, and point v is not in the current queue, point v is put at the end of the queue. In this way, nodes are continuously taken out of the queue to perform slack operations until the queue is empty.