Table de hashage [ts envts]

Description

table de hashage

correspondances entre une chaine clef & une chaine de donnée

ci joint la doc générée par MétaProg

Bibli présentes :
- BHashTable
- BException
- BString
- BVisuel
et évidemment Globals & macros

Source / Exemple :


BIBLIOTHEQUE PERSONNELLE DE FONCTIONS
						HashTable

						 Généré par MétaProg

Documentation générée par MétaProg 5.0.3 (C)
	Le  12/08/04 

		par Magic Nono

______________________________________________________

	SOURCE DECRITS
	FONCTIONS
I		C:\Bruno\perso\Bibli\BHashTable.cpp
I	A		BHashTable::BHashTable()
I	B		BHashTable::BHashTable(unsigned int nbFragments)
I	C		BHashTable::~BHashTable()
I	D		BHashTable::nv(const BString cle ,const BString& val)
I	E		BHashTable::get(const BString cle) -> BString*
I	F		BHashTable::toString() -> BString

______________________________________________________

______________________________________________________

				Section Source décrits
Extraite du fichier

	C:\Bruno\perso\Bibli\BHashTable.cpp

______________________________________________________

				Section Fonctions

______________________________________________________

I	C:\Bruno\perso\Bibli\BHashTable.cpp

| Créé le 12/08/04 : par Bruno *****
| Objectif général : table de hashage
| Développé pour	: Bibliothèque personnelle de fonctions
| Chemin original  : C:\Bruno\perso\Bibli\BHashTable.cpp
| Nota: dans InOut peuvent être repérées des var In : aucun indice formel ne permet de noter le masquage du passage par parametre... ex : f(T i){i++;} a un effet différent si T:int ou \"#define T int&\".
| Nota: dans InOut peuvent être repérées des var In : aucun indice formel ne permet de noter le masquage du passage par parametre... ex : f(T i){i++;} a un effet différent si T:int ou \"#define T int&\".

I A	BHashTable::BHashTable()
____________________________________________________________
| Objectif	: Constructeur de la classe : BHashTable
| PostCond	: Toutes les variables de la classe doivent être instanciées avec une valeur par défaut ou contextuelle
| Nota		: constructeur interdit
____________________________________________________________

I B	BHashTable::BHashTable(unsigned int nbFragments)
____________________________________________________________
| Objectif	: Constructeur de la classe : BHashTable
| PostCond	: Toutes les variables de la classe doivent être instanciées avec une valeur par défaut ou contextuelle
____________________________________________________________
| unsigned int nbFragments	: nombre de fragments de hashage
____________________________________________________________

I C	BHashTable::~BHashTable()
____________________________________________________________
| Objectif	: Destructeur de la classe : BHashTable
| PostCond	: Toutes les variables de la classe sont détruites
____________________________________________________________

I D	BHashTable::nv(const BString cle ,const BString& val)
____________________________________________________________
| Objectif	: ajout d'un nouvel élément dans la table de hashage
| PreCond	: donnée absente (err signalée)
| PostCond	: /
____________________________________________________________
| const BString cle	: clef de cet elt
| const BString& val	: valeur associée à la clef
____________________________________________________________

I E	BHashTable::get(const BString cle) -> BString*
____________________________________________________________
| Objectif	: recup de la donnée associée à le clef
| PreCond	: donnée déjà présente (exception)
| PostCond	: /
____________________________________________________________
| const BString cle	: clef de recherche
____________________________________________________________
| retour (BString*)	: donnée associée à la clef
____________________________________________________________

I F	BHashTable::toString() -> BString
____________________________________________________________
| Objectif	: Retourner sous forme textuelle le contenu de la classe
| PreCond	: Toutes les variables de ce conténaire doivent être instanciées et les conténaires de données qu'il comporte éventuellement doivent posséder une fonction toString.
| PostCond	: /
____________________________________________________________
| retour (BString)	: cf.obj
____________________________________________________________

Conclusion :


la fonction de hachage est simple :
je prends les 10 derniers caractères de la clef, j'en fait la somme (valeurs ASCII) et ensuite, un modulo du nombre de fragment est effectué.

ça en vaut n'importe quelle autre

et pour les performances,
ben tout dépend des données, des parametres (nb de fragments) & de votre matériel (vitesse du proc.,.origine des données... )

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.