#include #include #include //si vous en avez besoin #include #include #include "noeud.h" using namespace std; /*********************************************************** Code pour la partie 2 ***********************************************************/ //Représente un individu de la population. struct Personne { int id; string province; string ville; Personne() : Personne(0, "", "") { } Personne(int id, string province, string ville) { this->id = id; this->province = province; this->ville = ville; } }; void afficher_populations(vector& personnes) { //à implémenter } /*********************************************************** Code pour les tests de la Partie 1 et 2 ***********************************************************/ /** Fait le parcours à partir du noeud n avec l'itérateur. **/ void iterer(Noeud* n) { for (Noeud::iterator it = n->begin(); it != n->end(); ++it) { cout<<(*it)<<" "; } cout<* n) { Noeud::iterator itrev = n->end(); itrev--; while (itrev != n->begin()) { cout<<(*itrev)<<" "; itrev--; } cout<<(*itrev); //pour ne pas manquer le begin() cout<* racine = new Noeud(13); Noeud* n3 = racine->ajouter_enfant(3); Noeud* n12 = racine->ajouter_enfant(12); n3->ajouter_enfant(1); n3->ajouter_enfant(2); n12->ajouter_enfant(4); n12->ajouter_enfant(5); n12->ajouter_enfant(7)->ajouter_enfant(6); //oui ceci fonctionne n12->ajouter_enfant(8); Noeud* n11 = n12->ajouter_enfant(11); n11->ajouter_enfant(9); n11->ajouter_enfant(10); cout<<"Sortie avec afficher_postordre():"<afficher_postordre(); cout<::iterator it = racine->begin(); it = ++(++it); //3 cout<<(*it)<<" "; it--; cout<<(*it)<<" "; //2 ++ ++ ++it; //5 cout<<(*it)<<" "; -- --it; //3 cout<<(*it)<<" "; ++ ++ ++ ++it; ++ -- ++ -- --it; //6 cout<<(*it)<<" "; it++; it++; it++; it++; it++; it++; it++; it--; it--; it++; it++; it++; cout<<(it == racine->end() ? "fin" : "non-fin")<<" "; cout<* rcopie = new Noeud(*racine); auto it = rcopie->begin(); while (it != rcopie->end()) { cout << *it << " "; if (*it == 4) { rcopie->get_enfant(1)->supprimer_enfant(1); rcopie->get_enfant(1)->supprimer_enfant(1); } it++; } delete rcopie; delete racine; /********************************** Tests partie 2 ***********************************/ vector v; v.push_back(Personne(1, "Quebec", "Sherbrooke")); v.push_back(Personne(2, "Ontario", "Windsor")); v.push_back(Personne(3, "Quebec", "Sherbrooke")); v.push_back(Personne(4, "Quebec", "Windsor")); v.push_back(Personne(5, "Alberta", "Calgary")); v.push_back(Personne(6, "Ontario", "Windsor")); v.push_back(Personne(7, "Quebec", "Sherbrooke")); cout << endl << endl << "Tests partie 2" << endl; afficher_populations(v); cout << endl << "Tests duplicat" << endl; v.push_back(Personne(3, "Saskatchewan", "Saskatoon")); afficher_populations(v); return 0; }