Comment utiliser l'algorithme de Prim en C++
Titre : Exemples d'utilisation et de code de l'algorithme Prim en C++
Introduction : L'algorithme Prim est un algorithme d'arbre couvrant minimum couramment utilisé, principalement utilisé pour résoudre le problème de l'arbre couvrant minimum dans la théorie des graphes. En C++, l'algorithme de Prim peut être utilisé efficacement grâce à des structures de données raisonnables et à la mise en œuvre de l'algorithme. Cet article explique comment utiliser l'algorithme de Prim en C++ et fournit des exemples de code spécifiques.
1. Introduction à l'algorithme Prim
L'algorithme Prim est un algorithme glouton qui part d'un sommet et étend progressivement l'ensemble de sommets de l'arbre couvrant minimum jusqu'à ce que tous les sommets soient inclus. Il construit un arbre couvrant minimum en sélectionnant continuellement l'arête avec le plus petit poids connecté à l'ensemble actuel.
2. Étapes de mise en œuvre de l'algorithme Prim
- Créez un ensemble d'arbres couvrant minimum vide et une file d'attente prioritaire pour stocker les poids des bords et les sommets connectés.
- Sélectionnez au hasard un sommet comme sommet de départ et ajoutez-le à l'ensemble minimal d'arbres couvrants.
- Ajoutez l'arête connectée au sommet de départ à la file d'attente prioritaire.
- Répétez les étapes suivantes jusqu'à ce que l'arbre couvrant minimum contienne tous les sommets :
a. Supprimez l'arête ayant le plus petit poids et les sommets connectés de la file d'attente prioritaire.
b. Si le sommet est déjà dans l'ensemble minimal d'arbre couvrant, ignorez l'arête.
c. Sinon, ajoutez le sommet à l'ensemble minimal d'arbre couvrant et ajoutez les arêtes connectées au sommet à la file d'attente prioritaire. - Sortez l'ensemble minimal d'arbre couvrant.
3. Exemple de code C++
Ce qui suit est un exemple de code utilisant C++ pour implémenter l'algorithme de Prim, qui utilise une matrice de contiguïté pour représenter le graphique :
#include<iostream> #include<queue> #include<vector> #include<algorithm> using namespace std; const int MAX = 100; const int INF = 9999; vector<vector<int>> graph(MAX, vector<int>(MAX, INF)); void prim(int start, int n) { vector<int> key(n, INF); // 存储每个顶点到最小生成树的最小权重 vector<bool> visited(n, false); // 标记顶点是否已经加入最小生成树 priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; // 优先队列,按权重升序排列 key[start] = 0; // 起始顶点到自身的权重置为0 pq.push(make_pair(0, start)); while (!pq.empty()) { int u = pq.top().second; pq.pop(); visited[u] = true; for (int v = 0; v < n; v++) { if (graph[u][v] != INF && !visited[v] && graph[u][v] < key[v]) { key[v] = graph[u][v]; pq.push(make_pair(graph[u][v], v)); } } } // 输出最小生成树的边 for (int i = 1; i < n; i++) { cout << "Edge: " << i << " - " << key[i] << endl; } } int main() { int n, e; cout << "Enter the number of vertices: "; cin >> n; cout << "Enter the number of edges: "; cin >> e; cout << "Enter the edges and weights: " << endl; int u, v, w; for (int i = 0; i < e; i++) { cin >> u >> v >> w; graph[u][v] = w; graph[v][u] = w; } int start; cout << "Enter the starting vertex: "; cin >> start; cout << "Minimum Spanning Tree edges: " << endl; prim(start, n); return 0; }
4.Résumé
Cet article présente comment utiliser l'algorithme de Prim en C++, et fournit un exemple de code de paragraphe détaillé. Les arbres couvrants minimaux peuvent être calculés efficacement en utilisant des structures de données et des implémentations d'algorithmes appropriées. J'espère que cet article vous sera utile lorsque vous utiliserez l'algorithme de Prim pour résoudre le problème de l'arbre couvrant minimum.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Titre : Utilisation de l'algorithme Prim et exemples de code en C++ Introduction : L'algorithme Prim est un algorithme d'arbre couvrant minimum couramment utilisé, principalement utilisé pour résoudre le problème de l'arbre couvrant minimum dans la théorie des graphes. En C++, l'algorithme de Prim peut être utilisé efficacement grâce à des structures de données raisonnables et à la mise en œuvre de l'algorithme. Cet article explique comment utiliser l'algorithme de Prim en C++ et fournit des exemples de code spécifiques. 1. Introduction à l'algorithme Prim L'algorithme Prim est un algorithme glouton. Il part d'un sommet et étend progressivement l'ensemble de sommets de l'arbre couvrant minimum jusqu'à ce qu'il contienne.

En théorie des graphes, trouver l'arbre couvrant minimum (MST) d'un graphe pondéré connecté est un problème courant. MST est un sous-ensemble d'arêtes de graphique qui relie tous les sommets et minimise le poids total des arêtes. Un algorithme efficace pour résoudre ce problème est l’algorithme de Boruvka. Syntaxe structEdge{intsrc,dest,weight;};//Definethestructuretorepresentasubsetforunion-findstructSubset{intparent,rank;};Algorithme Maintenant, décrivons les étapes impliquées dans la recherche de l'arbre couvrant minimum dans l'algorithme de Boruvka - Initialiser le MST en tant qu'ensemble vide . pour chaque sommet

1. Double-cliquez pour ouvrir le document de test. 2. Après avoir cliqué sur le travail pour créer le premier document ppt, cliquez sur Insérer--Image--À partir d'un fichier dans le menu. 3. Sélectionnez le fichier que nous avons inséré et cliquez sur Insérer. 4. Insérez-en une autre de la même manière, puis faites glisser et ajustez les deux images à la position appropriée. 5. Sélectionnez deux images en même temps, cliquez avec le bouton droit sur - Groupe - Groupe, pour que les deux images n'en fassent qu'une. 6. Sélectionnez le graphique fusionné, cliquez avec le bouton droit sur - Personnaliser l'animation. 7. Cliquez sur Ajouter un effet, sélectionnez un effet et cliquez sur OK. Lorsque vous regardez le PPT, vous constaterez que les deux images bougent ensemble.

Comment utiliser Java pour implémenter un algorithme de tri topologique pour les graphiques Introduction : Un graphique est une structure de données très courante et a un large éventail d'applications dans le domaine de l'informatique. L'algorithme de tri topologique est un algorithme classique de la théorie des graphes qui permet de trier un graphe acyclique dirigé (DAG) pour déterminer les dépendances entre les nœuds du graphe. Cet article présentera comment utiliser le langage de programmation Java pour implémenter l'algorithme de tri topologique des graphiques, avec des exemples de code Java spécifiques. 1. Définir la structure des données du graphe. Avant d'implémenter l'algorithme de tri topologique, nous devons d'abord définir.

Comment utiliser Java pour implémenter l'algorithme du cycle hamiltonien pour les graphiques. Un cycle hamiltonien est un problème de calcul en théorie des graphes, qui consiste à trouver un chemin fermé contenant tous les sommets d'un graphe donné. Dans cet article, nous présenterons en détail comment implémenter l'algorithme du cycle hamiltonien à l'aide du langage de programmation Java et fournirons des exemples de code correspondants. Représentation graphique Tout d'abord, nous devons représenter le graphique en utilisant une structure de données appropriée. En Java, nous pouvons représenter des graphiques à l'aide de matrices de contiguïté ou de listes chaînées de contiguïté. Ici, nous choisissons d'utiliser une matrice de contiguïté pour représenter le graphique. Définir un fichier appelé

Comment utiliser un algorithme glouton pour obtenir la solution optimale du problème de l'arbre couvrant minimum en PHP ? Le problème de l'arbre couvrant minimum (MinimumSpanningTree) consiste à trouver un sous-arbre dans un graphe non orienté connecté tel que ce sous-arbre contienne tous les sommets du graphe et que la somme des poids de toutes les arêtes soit la plus petite. L'algorithme glouton est l'une des méthodes courantes pour résoudre ce problème. Il trouve progressivement la solution optimale globale en sélectionnant à chaque fois la solution optimale actuelle. Tout d’abord, nous devons définir une classe de graphe pour stocker la structure du graphe et les poids des arêtes. Ce qui suit est un exemple de

Comment utiliser Java pour implémenter l'algorithme de composants fortement connectés des graphiques Introduction : Le graphique est une structure de données couramment utilisée en informatique, et il peut nous aider à résoudre de nombreux problèmes pratiques. Dans un graphique, un composant connecté fait référence à un ensemble de sommets du graphique qui ont des chemins mutuellement accessibles. Un composant fortement connecté signifie qu’il existe un chemin bidirectionnel entre deux sommets quelconques dans un graphe orienté. Cet article expliquera comment utiliser Java pour implémenter l'algorithme de composants fortement connectés des graphiques afin d'aider les lecteurs à mieux comprendre la connectivité des graphiques. 1. Représentation graphique En Java, nous pouvons utiliser une matrice de contiguïté ou une contiguïté

Comprendre les arbres et les graphiques en Java : exploration des applications et des implémentations de structures de données non linéaires Introduction En informatique, les structures de données sont la manière dont les données sont stockées, organisées et gérées dans les ordinateurs. Les structures de données peuvent être divisées en structures de données linéaires et structures de données non linéaires. Les arbres et les graphiques sont les deux types de structures de données non linéaires les plus couramment utilisés. Cet article se concentrera sur les concepts, les applications et l'implémentation des arbres et des graphiques en Java, et donnera des exemples de code spécifiques. Le concept et l'application de l'arbre Un arbre est un type de données abstrait, une collection de nœuds et d'arêtes. Chaque nœud de l'arbre contient un numéro
