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

ακυκλο γράφημα στη C


voulaji

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

Δημοσ.

Παιδιά το έχασα πάλι. Λέτε επειδή είμαι ξανθιά;

Λοιπόν, έχουμε και λέμε:

Ο κώδικας που θέλω, πως θα ελέγχει έαν το γράφημα έχει κύκλους ή όχι. Και εάν έχει κύκλο, τότε πως να τον τυπώνει;

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

n, m

u, v float string

Βοηθήστε αδέρφια....

Δημοσ.
Παιδιά το έχασα πάλι. Λέτε επειδή είμαι ξανθιά;

Λοιπόν, έχουμε και λέμε:

Ο κώδικας που θέλω, πως θα ελέγχει έαν το γράφημα έχει κύκλους ή όχι. Και εάν έχει κύκλο, τότε πως να τον τυπώνει;

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

n, m

u, v float string

Βοηθήστε αδέρφια....

 

Είναι απλο και ηρέμησε σε βοηθάμε, θα διαβάσεις τις πληροφορίες σου από το αρχείο ότι είναι αυτές καιμε όποια μορφή έχουν στις κατάλληλες δομές που θα έχεις φτιάξει. Μετά αυτό που πρέπει να κάνεις για να δεις ότι έχεις κύκλο στο γράφημα σου πιστεύω ότι θα έχει 2 παραμέτρους.

1. Αν όλες οι κορυφές έχουν επισκεφτεί.

2. Αν η τελική κορυφή είναι αυτή που ξεκινάς.

 

Προς θεού και οι στοίβες στο πρόγραμμα είναι, σώζε το μονοπάτι σου σε μία στοίβα για να ελέγχεις τι γίνεται.

Δημοσ.

Φτιάξε μια συνάρτηση που να διαβάζει από το αρχείο σε ότι γλώσσα θέλεις ακόμα και C# (StreamReader) και προσπάθησε να περάσεις αυτά που διαβάζεις από το αρχείο στις κατάλληλες δομές σου. Δεν είναι δύσκολο πιστεύω.

Δημοσ.

Λοιπόν bokarinho είσαι τέλειος. Φαντάζομαι ότι ο καθηγητής μου δε θα ξέρει τόσο καλά C, όσο εσύ.

Εκείνες τις στοίβες τί τις ήθελες;

Μάλλον πρέπει να ξαναρχίσω τη C από το Α,Β,...

Έχω πολλά κενά από ότι φαίνεται και δε νομίζω ότι θα τα καταφέρω.

Σε ευχαριστώ πολύ όμως, όπως και να έχει η βοήθειά σου, μου είναι πολύτιμη.

Δημοσ.

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

 

>
typedef struct _Vertex
{
int Visited;
char *VertexName;
}Vertex;

typedef struct _Edge
{
Vertex startVert;
Vertex endVert;
int Weight;
}Edge;

typedef struct _Graph
{
Vertex *V;
int nVertex;
int nEdge;
}Graph;

 

Τώρα αρχίζεις και γράφεις code για να αρχικοποιήσεις τον γράφω, να προσθέτεις μία κορυφή, να προσθέτεις μία ακμή, να διαβάζεις από το αρχείο αυτά που σου δίνει κτλ κτλ.

Λες να είμαι καλύτερος από τον καθηγητή σου;

 

;);)

Δημοσ.

Υποθέτω πως ναι.

Τουλάχιστον από εσένα έχω καταλάβει πέντε πράγματα.

Στο θέμα μας τώρα.

Ο κώδικας που έστειλες είναι η αρχή;

Εννοώ ότι συνεχίσω επάνω σε αυτό ή τον τροποποιώ στα δικά μου δεδομένα;

Δημοσ.
Υποθέτω πως ναι.

Τουλάχιστον από εσένα έχω καταλάβει πέντε πράγματα.

Στο θέμα μας τώρα.

Ο κώδικας που έστειλες είναι η αρχή;

Εννοώ ότι συνεχίσω επάνω σε αυτό ή τον τροποποιώ στα δικά μου δεδομένα;

 

Αν σου αρέσει και καταλαβαίνεις τι κάνω ναι είναι μια αρχή, αν γουστάρεις και εσύ βέβαια.

Δημοσ.

Κοίταξε κάτι. Βασικά μ'ενδιαφέρει να λύσω την άσκηση (σσ χλωμό το βλέπω).

Επειδή όμως εμπιστεύομαι τις γνώσεις σου, γουστάρω να το προσπαθήσω.

Αν μου βγει έχει καλώς αλλιώς δεν θα παραδώσω την εργασία.

Τουλάχιστον θα έχω κερδίσει τρια πράγματα:

1-ότι προσπάθησα

2-ότι έμαθα κάτι

3-ότι βρήκα κάποιον να πω το πόνο μου (χι, χι, χι)

Δημοσ.

πως μπορώ να αρχικοποιήσω τον γράφο, να προσθέτω μία κορυφή, μία ακμή ;

typedef struct _Vertex

{

int Visited;

char *VertexName;

}

Vertex;

typedef struct _Edge

{

Vertex startVert;

Vertex endVert;

int Weight;

}Edge;

 

typedef struct _Graph

{

Vertex *V;

int nVertex;

int nEdge;

}Graph;

Δημοσ.

Συγγνώμη αλλά δεν μπορώ να σου λύσω την άσκηση, έχουμε συμφωνήσει όλοι εδώ στο φόρουμ να μην λύνουμε ασκήσεις και να ποστάρουμε έτοιμες για πολλούς λόγους, δεν θα σου προσφέρει τίποτα έτσι και αλλιώς.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...