Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

void dfs(int start){

int w;

v[start]=1;

for (w=0;w<size;w++)

if ((b[start][w]==1) && (v[w]==0))

dfs(w);}

 

Όπου b o πίνακας γειτνίασης, v ο πίνακας visited, size το μέγεθος του πίνακα γειτνίασης.

 

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

 

Διαδικασίες διάσχισης χρησιμοποιούνται για τη διακρίβωση ύπαρξης μονοπατιού μεταξύ δύο κόμβων κ.α.

 

Untitled.jpg

Αυτός είναι ο γράφος

Untitled1.jpg

Αυτός είναι ο πίνακας γειτνίασης

Untitled2.jpg

Αυτή είναι η λύση αν μπει ο dfs μέσα σε for μέχρι οι κορυφές του v να γίνουν όλες 1

Δημοσ.

void dfs(int start){

int w;

v[start]=1;

for (w=0;w<size;w++)

if ((b[start][w]==1) && (v[w]==0))

dfs(w);}

 

Όπου b o πίνακας γειτνίασης, v ο πίνακας visited, size το μέγεθος του πίνακα γειτνίασης.

 

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

 

Διαδικασίες διάσχισης χρησιμοποιούνται για τη διακρίβωση ύπαρξης μονοπατιού μεταξύ δύο κόμβων κ.α.

 

Untitled.jpg

Αυτός είναι ο γράφος

Untitled1.jpg

Αυτός είναι ο πίνακας γειτνίασης

Untitled2.jpg

Αυτή είναι η λύση αν μπει ο dfs μέσα σε for μέχρι οι κορυφές του v να γίνουν όλες 1

 

Δεν κατάλαβα ποια είναι η ερώτηση... Αλήθεια.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...