C++ Graphe [Probleme] SVP :S
Fermé
lavoiekeven
Messages postés
22
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
21 septembre 2009
-
7 déc. 2007 à 03:49
lavoiekeven Messages postés 22 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 21 septembre 2009 - 7 déc. 2007 à 16:46
lavoiekeven Messages postés 22 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 21 septembre 2009 - 7 déc. 2007 à 16:46
A voir également:
- C++ Graphe [Probleme] SVP :S
- Tracer un graphe sur excel - Guide
- Graphe easy - Télécharger - Études & Formations
- Plusieurs courbes sur un meme graphe excel ✓ - Forum Excel
- Graphe Easy - Guide
- Graphe matlab - Astuces et Solutions
1 réponse
lavoiekeven
Messages postés
22
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
21 septembre 2009
7 déc. 2007 à 16:46
7 déc. 2007 à 16:46
j'ai réussit a trouver une parite du problème, donc j'essais de faire imprimer le liste de haut en bas sa marche mais pas de coter
et je trouve pas le ***** problème
fichier txt :
1 2 3 5 6
7 8 9 1 6
4 5 6 9 9 5 6 5 6
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
struct adjacent //case de la liste d'adjacence
{
char perte;
char ville;
adjacent *liste;
adjacent *bas;
};
class Graphe
{
private:
int nombre_ville; //nombre de sommet
adjacent *Capitale; // tete de la liste d'adjacence
public:
Graphe(); //constructeur
~Graphe(){} //destructeur
void chemin_plus_court(); //calule le chemin le plus avantageux
void poid_minimale();
void afficher(); // affiche la liste
};
Graphe::Graphe() //constructeur
{
char ft[20],ligne[100],ville,grandeur = 0;
int i,count = 0,pair=0;
adjacent* tmp = new adjacent,*courant = new adjacent; //tmp parcourt de cote, courant vers le bas
Capitale = NULL;
tmp = NULL;
//DEmande le fichier d'operation
cout<<"Quelle est le nom du fichier que vous voulez traiter?"<<endl;
cin>>ft;
cout<<endl;
ifstream operation(ft); //ouverture du dossier d'operation
if (operation.fail()) //verifie s'il y a erreur d<ouverture
{
cout << "L'ouverture a echoue!";
}
else
{
do
{
operation.getline (ligne,100); //prend la ligne
i=0;
count++; //calcule le nombre de villes
ville = ligne[i]; // emmagazine le numéro de la ville
i++; //change la case regardée dans ligne
courant->perte = NULL; /////// BLOQUE ICI !!!!!!!!!!!!!!!!!!!!!!!
courant->bas = NULL;
courant->liste = NULL;
if (count <= 1) //si c'est le premier element c'est la capitale
{
Capitale = courant;
Capitale->ville = ville; //ecrit le numéro de la ville
}
else //sinon on descent d'une case
{
courant->bas = new adjacent; //Cree des case vers le bas
courant = courant->bas; //change de case
courant->ville = ville; //ecrit le numéro de la ville
}
courant->liste = new adjacent; //cree une case vers le cote
tmp = courant->liste;
do
{
i++;
tmp->ville = ligne[i];
i++;
i++;
tmp->perte = ligne[i];
i++;
tmp->liste = new adjacent; //cree et change de case vers le cote
tmp = tmp->liste;
}while(ligne[i] != '\0'); //tant qu'on est pas a la fin de la ligne
tmp->liste = NULL; // ferme les case de cote
}while(!operation.eof());
nombre_ville = count; // rentre le nombre de villes
courant->bas = NULL; // ferme les case du bas
}
}
void Graphe::afficher() //afficher la liste d'adjacence
{
adjacent * courant = Capitale, * tmp = NULL; //cournt vers le bas, liste vers le coté
courant = courant->liste;
do
{
cout<<"La ville : "<<courant->ville<<" ";
tmp = courant->liste;
do
{
cout <<tmp->ville<<" "<< tmp->perte<<endl;
tmp = tmp->liste;
}while(tmp->liste != NULL);
cout<<endl;
courant = courant->bas;
}while(courant->bas != NULL);
}
void main()
{
Graphe graphe_perte_de_ville;
graphe_perte_de_ville.afficher(); //afficher la liste
}
et je trouve pas le ***** problème
fichier txt :
1 2 3 5 6
7 8 9 1 6
4 5 6 9 9 5 6 5 6
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
struct adjacent //case de la liste d'adjacence
{
char perte;
char ville;
adjacent *liste;
adjacent *bas;
};
class Graphe
{
private:
int nombre_ville; //nombre de sommet
adjacent *Capitale; // tete de la liste d'adjacence
public:
Graphe(); //constructeur
~Graphe(){} //destructeur
void chemin_plus_court(); //calule le chemin le plus avantageux
void poid_minimale();
void afficher(); // affiche la liste
};
Graphe::Graphe() //constructeur
{
char ft[20],ligne[100],ville,grandeur = 0;
int i,count = 0,pair=0;
adjacent* tmp = new adjacent,*courant = new adjacent; //tmp parcourt de cote, courant vers le bas
Capitale = NULL;
tmp = NULL;
//DEmande le fichier d'operation
cout<<"Quelle est le nom du fichier que vous voulez traiter?"<<endl;
cin>>ft;
cout<<endl;
ifstream operation(ft); //ouverture du dossier d'operation
if (operation.fail()) //verifie s'il y a erreur d<ouverture
{
cout << "L'ouverture a echoue!";
}
else
{
do
{
operation.getline (ligne,100); //prend la ligne
i=0;
count++; //calcule le nombre de villes
ville = ligne[i]; // emmagazine le numéro de la ville
i++; //change la case regardée dans ligne
courant->perte = NULL; /////// BLOQUE ICI !!!!!!!!!!!!!!!!!!!!!!!
courant->bas = NULL;
courant->liste = NULL;
if (count <= 1) //si c'est le premier element c'est la capitale
{
Capitale = courant;
Capitale->ville = ville; //ecrit le numéro de la ville
}
else //sinon on descent d'une case
{
courant->bas = new adjacent; //Cree des case vers le bas
courant = courant->bas; //change de case
courant->ville = ville; //ecrit le numéro de la ville
}
courant->liste = new adjacent; //cree une case vers le cote
tmp = courant->liste;
do
{
i++;
tmp->ville = ligne[i];
i++;
i++;
tmp->perte = ligne[i];
i++;
tmp->liste = new adjacent; //cree et change de case vers le cote
tmp = tmp->liste;
}while(ligne[i] != '\0'); //tant qu'on est pas a la fin de la ligne
tmp->liste = NULL; // ferme les case de cote
}while(!operation.eof());
nombre_ville = count; // rentre le nombre de villes
courant->bas = NULL; // ferme les case du bas
}
}
void Graphe::afficher() //afficher la liste d'adjacence
{
adjacent * courant = Capitale, * tmp = NULL; //cournt vers le bas, liste vers le coté
courant = courant->liste;
do
{
cout<<"La ville : "<<courant->ville<<" ";
tmp = courant->liste;
do
{
cout <<tmp->ville<<" "<< tmp->perte<<endl;
tmp = tmp->liste;
}while(tmp->liste != NULL);
cout<<endl;
courant = courant->bas;
}while(courant->bas != NULL);
}
void main()
{
Graphe graphe_perte_de_ville;
graphe_perte_de_ville.afficher(); //afficher la liste
}