ошибка возврата в псевдокоде * алгоритма

#java #algorithm #traversal #pseudocode

#java #алгоритм #обход #псевдокод

Вопрос:

Я пытаюсь понять, что на самом деле делает использование ошибки возврата в конце псевдокода. Как бы он вернул вычисленный путь?

     // For each node, the cost of getting from the start node to that node.
    gScore := map with default value of Infinity
    // The cost of going from start to start is zero.
    gScore[start] := 0 
    // For each node, the total cost of getting from the start node to the goal
    // by passing by that node. That value is partly known, partly heuristic.
    fScore := map with default value of Infinity
    // For the first node, that value is completely heuristic.
    fScore[start] := heuristic_cost_estimate(start, goal)

    while openSet is not empty
        current := the node in openSet having the lowest fScore[] value
        if current = goal
            return reconstruct_path(cameFrom, current)

        openSet.Remove(current)
        closedSet.Add(current)
        for each neighbor of current
            if neighbor in closedSet
                continue        // Ignore the neighbor which is already evaluated.
            // The distance from start to a neighbor
            tentative_gScore := gScore[current]   dist_between(current, neighbor)
            if neighbor not in openSet  // Discover a new node
                openSet.Add(neighbor)
            else if tentative_gScore >= gScore[neighbor]
                continue        // This is not a better path.

            // This path is the best until now. Record it!
            cameFrom[neighbor] := current
            gScore[neighbor] := tentative_gScore
            fScore[neighbor] := gScore[neighbor]   heuristic_cost_estimate(neighbor, goal)

    return failure
  

Комментарии:

1. Это означает возврат значения (например, null) или выдачу исключения, указывающего, что путь не может быть найден.

2. если нужно просто вернуть значение, почему вы не можете просто использовать возвращаемое значение ?

3. Это для возврата значения, которое указывает на сбой . Вам полностью решать, какое фактическое значение следует возвращать, когда методу не удается найти путь, чтобы вызывающий объект мог распознать его как таковой. Обычным выбором было бы значение null, указывающее на отсутствие пути. Если возвращаемый тип представляет собой массив или список, то пустой массив / список также может быть вариантом. Это псевдокод . Это просто означает: Возвращать значение, указывающее на неспособность найти путь.