Ce blog s'adresse aux développeurs qui souhaitent comprendre l'essentiel d'un concept et ne pas tourner autour du pot. Nous comprendrons la structure des données graphiques dans cet article. Commençons.
Les graphiques sont des structures de données non linéaires à 2 composants, à savoir les arêtes et les nœuds.
Un nœud est : -
Un bord c'est:-
Il y a 2 façons :
La matrice adjacente est une matrice 2D représentant la structure des données graphiques. Les lignes et les colonnes représentent les nœuds et la valeur dans la matrice représente les arêtes.
Dans l'image ci-dessus, 4 nœuds sont reliés par les bords. Le nœud A est connecté à tous les nœuds et donc la valeur est ajoutée à 1 dans les cellules où A (ligne ou colonne) croise les lignes ou colonnes d'autres nœuds. Le nœud B est uniquement connecté au nœud A, ce qui donne une valeur 1 dans la cellule où le nœud B croise le nœud A et les autres cellules ont une valeur 0.
La complexité temporelle pour ajouter ou supprimer une arête pour la matrice adjacente est O(1). Il peut être utilisé lorsque : -
La liste adjacente stocke le graphique à l'aide de plusieurs listes ou tableaux chaînés. Les lignes représentent le nœud (vérifiez l'image ci-dessous) et les valeurs présentes dans les lignes représentent le voisin.
Dans l'image ci-dessus, il y a 5 nœuds. Le nœud A est connecté au nœud B et au nœud D, c'est pourquoi le premier tableau a ces valeurs. De même, le nœud B est connecté au nœud A, au nœud C, au nœud D et au nœud E et le deuxième tableau contient donc ces nœuds dans le deuxième tableau.
La complexité temporelle pour récupérer ou supprimer un bord est O(n) et la complexité temporelle pour ajouter un bord est O(1). La liste adjacente peut être utilisée lorsque : -
Un exemple populaire de structure de données graphiques est le suivant : dans un terrain de football, chaque joueur peut être considéré comme un nœud et leurs interactions représentent des bords.
Les graphiques sont utilisés dans des scénarios similaires à ceux de l'exemple précédent, tels que : -
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!