Nesse método conseguimos incluir também o valor de peso da aresta e dizer se ela é uma aresta dirigida ou não.
Existem três variações de possibilidade de entrada de parâmetros nesse método. A imagem mostrada a baixo é o método com quantidade máxima de parâmetros que se pode passar.
As outras duas variações serão mostradas logo após a explicação de cada linha do método.
Vale ressaltar que, se o valor do parâmetro de direção for 0, então a aresta é não dirigida e se o valor do parâmetro for 1 então a aresta é dirigida.

58: Condição para verificar se os parâmetros passados pelo usuário de nó de origem e nó de destino são valores menores que o tamanho do atributo Nos.
Essa verificação tem de ser feita, porque se, por exemplo, tentarmos acessar o índice 5 de um vetor que só tem 3 posições o programa irá dar erro por tentar acessar um índice que não existe.
60: Caso os valores dos pontos de inicio e fim forem menor que o atributo Nos, então é verificado se o parâmetro direcao (que verifica se a aresta é ou não dirigida) recebeu o valor 0 ou 1.
61: Caso a condição for verdadeira então a Matriz recebe o peso da aresta passado por parâmetro na posição (também passada por parâmetro) do ptoOrigem e ptoDestino.
62: Caso a condição da linha 11 for falsa então é verificado se o valor passado por parâmetro para direção é igual a 0
64-65: Se essa condição for verdadeira então a Matriz recebe o peso nos dois sentidos.
Agora muitos devem estar se perguntando o que é esses dois sentidos mencionados acima.
Bom, vamos tentar explicar:
Vamos supor que uma aresta de peso 5 irá ser criada. É passado como parâmetro também o ponto inicial (definido pelo parâmetro ptoOrigem) 7 e ponto de destino (definido pelo parâmetro ptoDestino) 10.
Se o grafo não for dirigido (direcao = 0) então o grafo não tem direção, ou seja, não tem ponto inicial ou final.
Sendo assim, o ponto definido como ponto de origem é na verdade o ponto inicial e também o final, ou seja, essa aresta pode ir do ponto 7 até 10 ou do ponto 10 até 7.
67: Caso as condições das linhas 60 e 62 forem falsas então uma mensagem de erro é enviada ao usuário.
Agora serão mostradas as outras formas de chamar o método SetAresta que só varia pelo número de parâmetros passados.


No primeiro método que vai da linha 78 até a linha 81 o parâmetro de peso da aresta não é passado, portanto, por padronização chamamos o método apresentado anteriormente do SetAresta passando o valor do peso como 1.
Já no segundo método apresentado que vai da linha 85 até a linha 88, os valores de peso da aresta e direcao não são setados. Portanto, por padronização passamos os valores, tanto de peso, quanto de direção da aresta, valendo 1.
Nenhum comentário:
Postar um comentário