code: def dijkstra(self, src):
      """
      Given a node, returns the shortest distance to every other node
      """
      dist = [float("inf")] * self.vertex_count
      dist[src] = 0
      min_dist_set = [False] * self.vertex_count
  
      for _ in range(self.vertex_count):
          # minimum distance vertex that is not processed
          source = self.min_distance(dist, min_dist_set)
  
          # put minimum distance vertex in shortest tree
          min_dist_set[source] = True
  
          # Update dist value of the adjacent vertices
          for target in range(self.vertex_count):
              if (
                  self.graph[source][target] <= 0
                  or min_dist_set[target]
              ):
                  continue
              if (
                  dist[target]
                  > dist[source] + self.graph[source][target]
              ):
                  dist[target] = (
                      dist[source] + self.graph[source][target]
                  )
  
      return dist
  
label_desc: Use image node_id 3 for calling the Dijkstra obj's underlying member method code with example usage: obj.dijkstra(src) and returns: dist