Pseudocode pour obtenir ordre basé sur la dépendance

voix
0

Ok, ma situation est-ce que j'ai une liste d'articles et je dois obtenir l'ordre de ces éléments en fonction des références qu'ils ont. Par exemple permet de dire que nous avons ces articles: A, B, C, D, E, F

C et D ont pas de dépendances de sorte que leur ordre peut être 0. B est celle qui a le plus de C, D et A. A a C et F a A et B

  C    D    
  | \  /
  A  /
/ | /
| B 
\ |
  F

Dans ce cas, C, D = 0 A = 1 B = 2 F = 3

Je suis à la recherche à travers l'Internet et il semble que je ne suis pas en utilisant le terme scientifique correct pour cela. Très probablement, il est un ensemble ou un ensemble de sacs en quelque sorte. Je sais que ce n'est pas un arbre que cette situation a plus de deux arêtes sur chaque nœud. La réponse peut être dans un langage de programmation, juste essayer de le rendre aussi générale que possible.

Créé 10/12/2009 à 17:12
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Un algorithme simple est la suivante.

Itérer la collection, à la recherche d'éléments qui ne disposent pas de dépendances: rappelez-vous ces éléments comme « le niveau 0 éléments ».

Itérer la collection à nouveau, à la recherche d'éléments qui peuvent dépendre « le niveau 0 éléments », mais pas sur d'autres éléments: rappelez-vous ces éléments comme « le niveau 1 éléments ».

Itérer la collection à nouveau, à la recherche d'éléments qui peuvent dépendre « le niveau 0 éléments » et / ou « le niveau 1 éléments », mais pas sur d'autres éléments: rappelez-vous ces éléments comme « le niveau 2 éléments ».

Etc.

Arrêtez-vous lorsque chaque élément a un niveau attribué.

Créé 10/12/2009 à 17:18
source utilisateur

voix
0

Vous pouvez créer un graphique et maintenir les comptes de pointeur, ou vous pouvez utiliser la matrice. Rechercher et lire une idée de base du graphique (mathématiques, non graphique de l'ordinateur), vous pouvez le trouver est assez facile.

Créé 10/12/2009 à 17:18
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more