Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Fichier emplacement.hpp */
- #include <iostream>
- using namespace std;
- template < class C, class V >
- class Emplacement {
- private:
- C cle;
- V valeur;
- Emplacement *suiv;
- public:
- Emplacement(const C &cle, const V &valeur) : cle(cle), valeur(valeur), suiv(NULL) {}
- C get_cle() { return cle; }
- V& get_valeur() { return valeur; }
- C get_cle() const { return cle; }
- const V& get_valeur() const { return valeur; }
- Emplacement *get_suiv() const { return suiv; }
- void set_valeur(V valeur) { (*this).valeur = valeur; }
- void set_suiv(Emplacement *suiv) { (*this).suiv = suiv; }
- friend ostream &operator<<(ostream &ost, const Emplacement &e) {
- ost << "\t" << e.get_cle() << ":\t" << e.get_valeur();
- return ost;
- }
- };
- /* Fichier tablehachage.cpp */
- int& TableHachage::operator[](const int &cle) {
- unsigned long valeur_hachage = fonction_hachage(cle);
- Emplacement *e = table[valeur_hachage];
- while (e != NULL && e->get_cle() != cle) {
- e = e->get_suiv();
- }
- if(e != NULL)
- return e->get_valeur();
- else
- return this->inserer(cle,0);
- }
- /* Fichier main.cpp */
- #include "tablehachage.hpp"
- int main() {
- TableHachage hmap(10);
- hmap.inserer(1, 10);
- hmap.inserer(2, 28);
- hmap.inserer(3, 4);
- int valeur;
- hmap.acces(3, valeur);
- cout << valeur << endl;
- /* Illustration de l'interet du bool */
- bool res = hmap.acces(2, valeur);
- if (res)
- cout << valeur << endl;
- hmap.supprimer(3);
- res = hmap.acces(3,valeur);
- if (res)
- cout << valeur << endl;
- hmap[2] = 45;
- hmap[8] = 12;
- cout << hmap << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement