Algoritmo da teoria dos grafos: o DFS encontra todos os caminhos entre dois pontos em um gráfico direcionado ou não direcionado e o algoritmo de Dijkstra encontra o caminho mais curto

1. Propósito

  1) Obtenha todos os caminhos dos pontos inicial e final especificados de acordo com o gráfico direcionado; 2) Resolva diretamente o caminho mais curto entre dois pontos.

2. Exemplo de efeito

2.1 Dados brutos

insira a descrição da imagem aqui
Os pontos inicial e final da rota são organizados da seguinte forma:

// 共计12个顶点,19条边。 (起点,终点,1)最后的1代表起点终点是连通的。
起点,终点,12 4 1
起点,终点,19 10 1
起点,终点,18 11 1
起点,终点,14 12 1
起点,终点,111 12 1
起点,终点,11 2 1
起点,终点,13 2 1
起点,终点,11 3 1
起点,终点,13 4 1
起点,终点,13 6 1
起点,终点,11 5 1
起点,终点,16 5 1
起点,终点,16 7 1
起点,终点,16 9 1
起点,终点,17 9 1
起点,终点,19 10 1
起点,终点,15 8 1
起点,终点,18 7 1
起点,终点,110 11 1

2.1 Efeito do cálculo do programa

Insira os pontos inicial e final: 1 e 12.
insira a descrição da imagem aqui

3. Código fonte

// GraphDFS.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
#include <algorithm>
#include<stdio.h>
#include<math.h>
using namespace std;

int mapMatrix[1000][1000] = {
   
    
     0 };///map[i][j]为0表示i, j两点之间不通,为1表示有一条路
int stack[200], markV[500] = {
   
    
     0 };
int nTop = 0;

const

Acho que você gosta

Origin blog.csdn.net/m0_37251750/article/details/131529880
Recomendado
Clasificación