1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /** * \file BST.inl * \brief Le code des op�rateurs du laboratoire #8 * \author Abder * \version 0.1 * \date septembre 2009 * * Impl�mentation des m�thodes de parcours d'un arbre g�n�rique * */ namespace Arbre_Lab8 { /** * \fn Arbre<E>:: Arbre(E *tabS, int debut, int fin, E **ptr, int &card) * * \param[in] tabS Le tableau contenant le fruit de la visite sym�trique * \param[in] debut L'indice de début de tabS * \param[in] fin L'indice de fin de tabS * \param[in] ptr Le tableau contenant le fruit de la visite au p�re * \param[in] card La cardinalité de tabP * */ template<typename E> Arbre<E>::Arbre(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc) { racine = _auxPereSym(tabS, debut, fin, ptr, card); } template<typename E> void Arbre<E>::parcourirPreOrdre(void(* traitement)(E &iteme)) const { } template<typename E> void Arbre<E>::_auxPreOrdre(Noeud* noeud, void(* traitement)(E&)) const { traitement; if (noeud->gauche != 0) _auxPreOrdre(noeud->gauche, _auxPreOrdre(traitement)); if (noeud->droite != 0) _auxPreOrdre(noeud->droite, _auxEnOrdre(traitement)); } //template<typename E> //void Arbre<E>::_auxEnOrdre(Noeud* noeud, std::vector<E>& vNoeuds) const //{ // if (noeud->gauche != 0) // _auxEnOrdre(noeud->gauche, vNoeuds); // // vNoeuds.push_back(noeud->data); // // if (noeud->droite != 0) // _auxEnOrdre(noeud->droite, vNoeuds); //} //� compl�ter par toutes les m�thodes demand�es template<typename E> void Arbre<E>::_auxDetruire(Noeud * &t) { if (t->gauche != 0) _auxDetruire(t->gauche); if (t->droite != 0) _auxDetruire(t->droite); delete t; } template<typename E> Noeud * Arbre<E>::_auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc) { return new Noeud(tabS[0]); } }//Fin du namespace |
LyoqCiAqIFxmaWxlIEJTVC5pbmwKICogXGJyaWVmIExlIGNvZGUgZGVzIG9w77+9cmF0ZXVycyBkdSBsYWJvcmF0b2lyZSAjOAogKiBcYXV0aG9yIEFiZGVyCiAqIFx2ZXJzaW9uIDAuMQogKiBcZGF0ZSBzZXB0ZW1icmUgMjAwOQogKgogKiBJbXBs77+9bWVudGF0aW9uIGRlcyBt77+9dGhvZGVzIGRlIHBhcmNvdXJzIGQndW4gYXJicmUgZ++/vW7vv71yaXF1ZSAgCiAqCiAqLwoKbmFtZXNwYWNlIEFyYnJlX0xhYjgKewoKLyoqCiAqIFxmbiBBcmJyZTxFPjo6IEFyYnJlKEUgKnRhYlMsIGludCBkZWJ1dCwgaW50IGZpbiwgRSAqKnB0ciwgaW50ICZjYXJkKQogKgogKiBccGFyYW1baW5dIHRhYlMgTGUgdGFibGVhdSBjb250ZW5hbnQgbGUgZnJ1aXQgZGUgbGEgdmlzaXRlIHN5be+/vXRyaXF1ZQogKiBccGFyYW1baW5dIGRlYnV0IEwnaW5kaWNlIGRlIGTDqWJ1dCBkZSB0YWJTCiAqIFxwYXJhbVtpbl0gZmluIEwnaW5kaWNlIGRlIGZpbiBkZSB0YWJTCiAqIFxwYXJhbVtpbl0gcHRyIExlIHRhYmxlYXUgY29udGVuYW50IGxlIGZydWl0IGRlIGxhIHZpc2l0ZSBhdSBw77+9cmUKICogXHBhcmFtW2luXSBjYXJkIExhIGNhcmRpbmFsaXTDqSBkZSB0YWJQCiAqCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBFPgpBcmJyZTxFPjo6QXJicmUoRSAqdGFiUywgaW50IGRlYnV0LCBpbnQgZmluLCBFICoqcHRyLCBpbnQgJmNhcmQpIHRocm93IChzdGQ6OmJhZF9hbGxvYykKewogICByYWNpbmUgPSBfYXV4UGVyZVN5bSh0YWJTLCBkZWJ1dCwgZmluLCBwdHIsIGNhcmQpOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBFPgp2b2lkIEFyYnJlPEU+OjpwYXJjb3VyaXJQcmVPcmRyZSh2b2lkKCogdHJhaXRlbWVudCkoRSAmaXRlbWUpKSBjb25zdAp7Cgp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBFPgp2b2lkIEFyYnJlPEU+OjpfYXV4UHJlT3JkcmUoTm9ldWQqIG5vZXVkLCB2b2lkKCogdHJhaXRlbWVudCkoRSYpKSBjb25zdAp7CiAgIHRyYWl0ZW1lbnQ7CiAgIGlmIChub2V1ZC0+Z2F1Y2hlICE9IDApCiAgICAgIF9hdXhQcmVPcmRyZShub2V1ZC0+Z2F1Y2hlLCBfYXV4UHJlT3JkcmUodHJhaXRlbWVudCkpOwoKICAgaWYgKG5vZXVkLT5kcm9pdGUgIT0gMCkKICAgICAgX2F1eFByZU9yZHJlKG5vZXVkLT5kcm9pdGUsIF9hdXhFbk9yZHJlKHRyYWl0ZW1lbnQpKTsKfQoKLy90ZW1wbGF0ZTx0eXBlbmFtZSBFPgovL3ZvaWQgQXJicmU8RT46Ol9hdXhFbk9yZHJlKE5vZXVkKiBub2V1ZCwgc3RkOjp2ZWN0b3I8RT4mIHZOb2V1ZHMpIGNvbnN0Ci8vewovLyAgIGlmIChub2V1ZC0+Z2F1Y2hlICE9IDApCi8vICAgICAgX2F1eEVuT3JkcmUobm9ldWQtPmdhdWNoZSwgdk5vZXVkcyk7Ci8vCi8vICAgdk5vZXVkcy5wdXNoX2JhY2sobm9ldWQtPmRhdGEpOwovLwovLyAgIGlmIChub2V1ZC0+ZHJvaXRlICE9IDApCi8vICAgICAgX2F1eEVuT3JkcmUobm9ldWQtPmRyb2l0ZSwgdk5vZXVkcyk7Ci8vfQoKLy/vv70gY29tcGzvv710ZXIgcGFyIHRvdXRlcyBsZXMgbe+/vXRob2RlcyBkZW1hbmTvv71lcwoKdGVtcGxhdGU8dHlwZW5hbWUgRT4Kdm9pZCBBcmJyZTxFPjo6X2F1eERldHJ1aXJlKE5vZXVkICogJnQpCnsKICAgaWYgKHQtPmdhdWNoZSAhPSAwKQogICAgICBfYXV4RGV0cnVpcmUodC0+Z2F1Y2hlKTsKCiAgIGlmICh0LT5kcm9pdGUgIT0gMCkKICAgICAgX2F1eERldHJ1aXJlKHQtPmRyb2l0ZSk7CgogICBkZWxldGUgdDsKCn0KCnRlbXBsYXRlPHR5cGVuYW1lIEU+Ck5vZXVkICogQXJicmU8RT46Ol9hdXhQZXJlU3ltKEUgKnRhYlMsIGludCBkZWJ1dCwgaW50IGZpbiwgRSAqKnB0ciwgaW50ICZjYXJkKSB0aHJvdyAoc3RkOjpiYWRfYWxsb2MpCnsKICAgcmV0dXJuIG5ldyBOb2V1ZCh0YWJTWzBdKTsKfQoKfS8vRmluIGR1IG5hbWVzcGFjZQo=


