Ψευδοκώδικα για να πάρει ώστε με βάση την εξάρτηση

ψήφοι
0

Εντάξει, η κατάσταση μου είναι αυτό που έχω μια λίστα με τα στοιχεία και θα πρέπει να πάρει τη σειρά αυτών των στοιχείων με βάση τα στοιχεία που έχουν. Για παράδειγμα, ας πούμε ότι έχουμε αυτά τα στοιχεία: Α, Β, C, D, E, F

Γ και Δ δεν έχουν εξαρτήσεις έτσι η σειρά τους μπορεί να είναι 0. Β είναι αυτός που έχει το πιο με C, D και Α Α έχει C και F έχει Α και Β

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

Σε αυτήν την περίπτωση C, D = 0 Α = 1 Β = 2 F = 3

Έχω ψάξει μέσω του διαδικτύου και φαίνεται ότι δεν είμαι χρησιμοποιώντας το σωστό επιστημονικός όρος για αυτό. Πιθανότατα πρόκειται για ένα σύνολο ή μια τσάντα που με κάποιο τρόπο. Ξέρω ότι δεν είναι ένα δέντρο, όπως η κατάσταση αυτή έχει περισσότερα από δύο άκρες σε κάθε κόμβο. Η απάντηση μπορεί να είναι σε μια γλώσσα προγραμματισμού, απλώς προσπαθεί να καταστήσει ως γενικές όσο το δυνατόν.

Δημοσιεύθηκε 10/12/2009 στις 17:12
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
2

Ένας απλός αλγόριθμος έχει ως εξής.

Επαναλάβει τη συλλογή, ψάχνει για στοιχεία που δεν έχουν εξαρτήσεις: θυμηθείτε τα στοιχεία αυτά ως «τα επίπεδα 0 στοιχεία».

Επαναλάβει τη συλλογή και πάλι, ψάχνει για στοιχεία που μπορεί να εξαρτάται από το «επίπεδο 0 στοιχεία», αλλά όχι σε άλλα στοιχεία: θυμηθείτε τα στοιχεία αυτά ως «τα επίπεδα 1 στοιχεία».

Επαναλάβει τη συλλογή και πάλι, ψάχνει για στοιχεία που μπορεί να εξαρτάται από το «επίπεδο 0 στοιχεία» και / ή για «τα επίπεδα 1 στοιχεία», αλλά όχι σε άλλα στοιχεία: θυμηθείτε τα στοιχεία αυτά ως «τα επίπεδα 2 στοιχεία».

Και τα λοιπα.

Σταματήστε όταν κάθε στοιχείο έχει εκχωρηθεί επίπεδο.

Απαντήθηκε 10/12/2009 στις 17:18
πηγή χρήστη

ψήφοι
0

Μπορείτε να δημιουργήσετε ένα γράφημα και να διατηρήσουν τις μετρήσεις του δείκτη, ή μπορείτε να χρησιμοποιήσετε μήτρα. Αναζήτηση και να διαβάσετε κάποια βασική ιδέα του γραφήματος (μαθηματικά, δεν γράφημα υπολογιστή), μπορείτε να βρείτε ότι είναι αρκετά εύκολο.

Απαντήθηκε 10/12/2009 στις 17:18
πηγή χρήστη

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