Pseudocode voor het krijgen van orde op basis van Dependency

stemmen
0

Ok, mijn situatie is dit heb ik een lijst met items en ik nodig om de volgorde van deze items op basis van de referenties hebben ze te krijgen. Zo laten we zeggen we hebben de volgende items: A, B, C, D, E, F

C en D geen afhankelijkheden, zodat de bestelling kan worden 0. B is degene die de meeste met C, D en A. A heeft C en F over A en B

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

In dit geval C, D = 0 A = 1 B = 2F = 3

Ik ben al op zoek via het internet en het lijkt erop dat ik ben niet met behulp van de juiste wetenschappelijke term voor dit. Waarschijnlijk is het een set of een tas die in een bepaalde manier. Ik weet dat het niet een boom als deze situatie heeft meer dan twee kanten op elk knooppunt. Het antwoord kan in een programmeertaal, gewoon proberen om het zo algemeen mogelijk te maken.

De vraag is gesteld op 10/12/2009 om 17:12
bron van user
In andere talen...                            


2 antwoorden

stemmen
2

Een eenvoudig algoritme is als volgt.

Doorloop de collectie, op zoek naar elementen die geen afhankelijkheden: onthoud deze elementen als "de level 0 elementen".

Doorloop de collectie weer, op zoek naar elementen die afhankelijk kan zijn van "het niveau 0-elementen", maar niet op andere elementen: onthoud deze elementen als "het niveau 1 elementen".

Doorloop de collectie weer, op zoek naar elementen die afhankelijk kan zijn van "het niveau 0 elementen" en / of "het niveau 1 elementen", maar niet op andere elementen: onthoud deze elementen als "de level 2 elementen".

Enz.

Stop wanneer elk element heeft een toegewezen niveau.

antwoordde op 10/12/2009 om 17:18
bron van user

stemmen
0

U kunt een grafiek maken en onderhouden van de aanwijzer telt, of u kunt matrix gebruiken. Zoek en lees een aantal basisidee van de grafiek (wiskunde, niet computer grafiek), u vindt het is vrij eenvoudig.

antwoordde op 10/12/2009 om 17:18
bron van user

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