L’objectif de ce module est de comprendre en détail les principales structures de données linéaires :
- tableaux statiques,
- tableaux dynamiques,
- tables de hachage,
- listes chaînées.
L'accès à leur éléments par des itérateurs sera abordé dans le détail.
Conséquemment, la performance de leurs accès (en terme de complexité) doit être maîtrisée, de sorte que l’étudiant apprenne à choisir de façon éclairée une SDD adaptée à une situation donnée.
Pour les besoins de ce cours, l’accent sera mis sur certains aspects fondamentaux de la programmation en C++ :
- les pointeurs et la gestion de mémoire en C++,
- les constructeurs, le destructeur et l’importance du constructeur par recopie,
- la surcharge des opérateur
- ...
Par ailleurs, une attention toute particulière sera centrée sur l’efficacité des méthodes, notamment dans le cas de la recopie des collections.
Enfin, quelques exemples de réalisations de structures de données adaptées à des problèmes précis seront montrés, comme des tableaux bi-dimensionnels ou des matrices creuses.