elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algoritmo Dijkstra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo Dijkstra  (Leído 2,048 veces)
castrokin

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Algoritmo Dijkstra
« en: 6 Marzo 2022, 02:56 am »

Hola chicos espero puedan ayudar a resolver este problema que me esta dando muchos dolores de cabeza



como se puede observar se me pide Elaborar un programa en C++ utilizando el algoritmo de Dijkstra para encontrar la ruta de coste mínimo entre 1 y el resto de nodos de la red si se asume que 1 manda la misma información a todos los terminales,

¿Cuál sería el número medio de enlaces que un paquete atravesaría antes de llegar a su destino?

haciendo un algoritmo que podría ofrecer un mejor rendimiento, sabiendo que la información que 1 transmite es la misma para todos los nodos.

he realizado el siguiente código

Código:
        #include <bits/stdc++.h>  
        using namespace std; 
        #define INF 0x3f3f3f3f
        typedef pair<int, int> iPair; 
        class Graph
            { 
            int V;
            list<pair<int, int>>* adj;
        public: 
           
            Graph(int V)   
            { 
                this->V = V; 
                adj = new list<iPair>[V];   
            } 
            void addEdge(int u, int v, int w);   
           
            void shortestPathingraph(int s); 
        }; 
        void Graph::addEdge(int u, int v, int w)
        { 
            adj[u].push_back(make_pair(v, w));
            adj[v].push_back(make_pair(u, w));
        } 
        void Graph::shortestPathingraph(int src) 
        { 
            priority_queue<iPair, vector<iPair>, greater<iPair>> pq; 
            vector<int> dist(V, INF);   
            pq.push(make_pair(0, src));
            dist[src] = 0;   
            while (!pq.empty()) {
                int u = pq.top().second; 
                pq.pop(); 
               
                list<pair<int, int>>::iterator i; 
                for (i = adj[u].begin(); i != adj[u].end(); ++i) { 
                   
                    int v = (*i).first; 
                    int weight = (*i).second; 
       
                     
                    if (dist[v] > dist[u] + weight) { 
                        // Updating distance of v 
                        dist[v] = dist[u] + weight; 
                        pq.push(make_pair(dist[v], v)); 
                    } 
                } 
            } 
            printf("Vertex \tDistance from Source\n");
            for (int i = 1; i < V; ++i) 
                printf("%d \t\t %d\n", i, dist[i]);
        } 
        int main() 
        { 
            int V = 7;
            Graph g(V);
            g.addEdge(1, 2, 2);
            g.addEdge(1, 3, 3); 
            g.addEdge(1, 4, 1); 
            g.addEdge(2, 3, 1); 
            g.addEdge(2, 4, 3); 
            g.addEdge(2, 5, 1); 
            g.addEdge(2, 6, 3); 
            g.addEdge(3, 4, 2);
            g.addEdge(3, 5, 2);
            g.addEdge(4, 6, 5);
            g.addEdge(5, 6, 1);
            g.shortestPathingraph(0);   
            return 0;
        } 

dando como resultado



Que estaré haciendo mal

espero puedan ayudarme estoy a la espera de sus consejos

muchísimas gracias


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algoritmo de Dijkstra en Visual Basic
Programación Visual Basic
laukibuk 4 13,597 Último mensaje 17 Enero 2008, 07:32 am
por cobein
Algoritmo para un ejercicio; ¿Doble dijkstra?
Programación General
astinx 2 3,705 Último mensaje 16 Febrero 2012, 19:27 pm
por astinx
[Grafo] Base para el Algoritmo de Dijkstra
Programación C/C++
AlbertoBSD 1 3,231 Último mensaje 8 Agosto 2016, 05:01 am
por class_OpenGL
Auxilio con ALGORITMO DE DIJKSTRA!!!!! :'c
Programación C/C++
axel19 1 2,480 Último mensaje 3 Junio 2018, 10:23 am
por MAFUS
Algoritmo de Dijkstra
Programación C/C++
castrokin 1 3,999 Último mensaje 6 Agosto 2021, 09:15 am
por fzp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines