Tableaux statiques et dynamiques en C++

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quels sont les deux aspects du type de données tableau?

Même type et accès par indice entier.

L'accès à chaque élément d'un tableau se fait en temps variable selon la valeur de l'indice.

False (B)

Comment appelle-t-on le fait que la consultation ou la mise à jour d'un élément d'un tableau se fait en temps constant?

O(1)

Comment sont rangées les données des tableaux dans la mémoire de l'ordinateur?

<p>De façon contiguë.</p> Signup and view all the answers

La réorganisation des données dans un tableau est toujours une opération efficace.

<p>False (B)</p> Signup and view all the answers

Comment appelle-t-on le fait que l'insertion et la suppression d'un élément dans un tableau se font en temps linéaire par rapport à la taille du tableau.

<p>O(n)</p> Signup and view all the answers

La taille d'un tableau statique peut être modifiée après sa définition.

<p>False (B)</p> Signup and view all the answers

Quels sont les deux éléments qu'un tableau pseudo-dynamique réunit?

<p>Un tableau statique (trop grand) et le nombre effectif d'éléments.</p> Signup and view all the answers

Dans un tableau pseudo-dynamique, la dimension est majorée à _____, une constante qui donne le nombre maximal d'éléments enregistrables et qui est ce qu'on appelle sa capacité.

<p>CAPACITE</p> Signup and view all the answers

Quelles sont les deux inconvénients de la structure de donnée tableau pseudo-dynamique?

<p>Un certain gaspillage et une capacité limitée.</p> Signup and view all the answers

Qu'est-ce qu'un tableau dynamique exploite pour être mis en oeuvre?

<p>Les pointeurs et l'allocation dynamique de mémoire.</p> Signup and view all the answers

L'ajout d'un élément à la fin d'un tableau dynamique est une opération efficace.

<p>False (B)</p> Signup and view all the answers

Quels sont les avantages de la structure de donnée tableau dynamique?

<p>Le tableau est dynamique, l'accès aux éléments est direct, sa taille est illimitée et il n'y a aucun gaspillage de mémoire.</p> Signup and view all the answers

Comment appelle-t-on l'ajout d'un élément supplémentaire à la fin d'un tableau dynamique avec marge?

<p>Temps constant amorti.</p> Signup and view all the answers

Qu'est-ce qu'un tableau dynamique avec marge possède?

<p>Un tableau d'une certaine capacité et une dimension (inférieure ou égale à la capacité).</p> Signup and view all the answers

Qu'est-ce que le code suivant fait: double* n_t = new double[capacite];

<p>Créer un nouveau tableau pour cette nouvelle capacité.</p> Signup and view all the answers

Expliquer "temps constant amorti".

<p>Un ajout coûte le plus souvent 1 et parfois coûte beaucoup plus, mais il est possible de multiplier par 2 la capacité préparant ainsi autant d'ajouts en 1 qu'il y en a déjà eu. Résultat, le coût moyen est constant.</p> Signup and view all the answers

Quel est le but d'une classe?

<p>Les classes permettent d'encapsuler les structures de données pour permettre à son utilisateur de les employer à un niveau abstrait à l'aide d'opérations de haut niveau et de les manipuler avec sûreté.</p> Signup and view all the answers

Qu'offre un fichier d'en-têtes (headers)?

<p>Une sorte de mode d'emploi.</p> Signup and view all the answers

Par quoi est véhiculée la méthode pour connaître le nombre d'éléments dans le tableau?

<p>d_n</p> Signup and view all the answers

Quand est nécessaire un destructeur?

<p>Quand de la mémoire a été allouée dynamiquement à la construction.</p> Signup and view all the answers

Flashcards

Type de données tableau

Type de données permettant de mémoriser une collection d'éléments de même type, accessibles via un indice entier.

Accès direct aux éléments

L'accès à un élément se fait en temps constant, indépendamment de l'indice.

Opérations efficaces (O(1))

La consultation ou modification d'un élément prend un temps fixe.

Organisation des tableaux

Les données sont stockées de manière contiguë en mémoire.

Signup and view all the flashcards

Réorganisation coûteuse

Elle se fait en temps linéaire par rapport à la taille du tableau, O(n).

Signup and view all the flashcards

Opérations inefficaces

L'insertion/suppression se fait en temps linéaire, O(n).

Signup and view all the flashcards

Tableau statique

Sa taille est fixée lors de la déclaration et ne peut être modifiée.

Signup and view all the flashcards

Tableau pseudo-dynamique

Structure simulant un tableau dynamique via un tableau statique (trop grand) et un compteur d'éléments.

Signup and view all the flashcards

Ajout d'un élément (pseudo-dynamique)

Il faut placer le nouvel élément à la position 'n' et incrémenter 'n'.

Signup and view all the flashcards

Efficacité de l'ajout (pseudo)

Elle se fait en temps constant.

Signup and view all the flashcards

Inconvénients (pseudo-dynamique)

Un gaspillage de mémoire et capacité limitée.

Signup and view all the flashcards

Tableau dynamique

On utilise les pointeurs et l'allocation dynamique de mémoire.

Signup and view all the flashcards

Ajout d'un élément (dynamique)

Nécessite de créer un nouveau tableau plus grand, copier les valeurs, libérer l'ancien espace.

Signup and view all the flashcards

Avantages (tableau dynamique)

Le tableau est dynamique, accès direct, taille illimitée, pas de gaspillage.

Signup and view all the flashcards

Inconvénient majeur

L'ajout de valeurs est coûteux.

Signup and view all the flashcards

Tableau dynamique avec marge

Un tableau avec une capacité et une dimension (inférieure ou égale à la capacité).

Signup and view all the flashcards

Fonctionnement avec marge

Chaque ajout augmente la dimension. Si la capacité est atteinte, elle est augmentée.

Signup and view all the flashcards

Efficacité

En temps constant amorti.

Signup and view all the flashcards

Tableau dynamique avec marge

Mixte entre pseudo-dynamique et dynamique qui gère ses inconvénients tout en conservant des avantages

Signup and view all the flashcards

Partie publique d'une classe

Contient les méthodes essentielles à utiliser la classe.

Signup and view all the flashcards

Partie publique de la classe

Ensemble des méthodes essentielles à son usage.

Signup and view all the flashcards

Partie privée d'une classe

Encapsule la structure des données.

Signup and view all the flashcards

Structure de données

Pointeur, dimension, capacité.

Signup and view all the flashcards

Fichier d'en-têtes

Réunissent les déclarations.

Signup and view all the flashcards

Constructeur (TableauDynamiqueAvecMarge)

Alloue dynamiquement la mémoire.

Signup and view all the flashcards

Study Notes

  • Le document porte sur les structures de données, notamment les tableaux en C++, avec un focus sur les tableaux statiques, pseudo-dynamiques et dynamiques, y compris ceux avec marge.

Objectifs

  • Redécouvrir les tableaux statiques.
  • Explorer les tableaux dynamiques et leurs performances.

Introduction

  • Les tableaux seront étudiés sous un nouvel angle.
  • Les tableaux usuels sont statiques.
  • Création de tableaux dynamiques avec ou sans marge.
  • Découverte de l'intérêt des tableaux et de leurs cas d'utilisation pertinents.

Tableaux statiques

  • Un tableau est une collection d'éléments de même type accessibles par un indice entier.
  • L'accès à un élément par son indice est direct et se fait en temps constant, noté O(1).
  • Les données des tableaux sont rangées de manière contiguë en mémoire.
  • L'organisation contiguë des données permet un accès direct (O(1)) mais rend la réorganisation coûteuse.
  • L'insertion ou la suppression d'éléments se fait en temps linéaire O(n), où n est la taille du tableau.
  • Un tableau statique a une taille fixe qui ne peut pas être modifiée après sa déclaration.

Tableaux pseudo dynamiques

  • Les tableaux sont statiques en C++.
  • Simulation d'un comportement dynamique en utilisant une structure de données.
  • Un tableau pseudo-dynamique combine un tableau statique (surdimensionné) et un compteur du nombre d'éléments effectifs.
  • La dimension du tableau est majorée par une constante, qui donne le nombre maximal d'éléments enregistrables et qui est la capacité.
  • Une variable n donne le nombre effectif d'éléments enregistrés.
  • L'ajout d'un élément supplémentaire à la fin d'un tableau est une opération fondamentale pour comparer les structures de données.
  • L'ajout d'un élément consiste à le placer à la position n et incrémenter n, sous réserve que n reste inférieur à la capacité.
  • Cette structure présente l'avantage de simuler un tableau dynamique, mais avec un gaspillage de mémoire et une capacité limitée.

Tableaux dynamiques

  • Les tableaux dynamiques utilisent des pointeurs et l'allocation dynamique de mémoire.
  • Un pointeur sur le type de données stockées et un entier représentant le nombre d'éléments.
  • L'allocation de mémoire est gérée dynamiquement.
  • L'ajout d'un élément à la fin nécessite la création d'un nouveau tableau temporaire plus grand, la copie des éléments de l'ancien tableau, la libération de la mémoire de l'ancien tableau, et l'ajout du nouvel élément.
  • Cette opération d'ajout est inefficace, car elle se fait en temps linéaire.
  • Pas de gaspillage de mémoire et capacité illimitée.
  • L'ajout de valeurs est coûteux, car nécessite d’allouer de la place, de recopier les valeurs et libérer l'espace.

Tableaux dynamiques avec marge

  • Combinaison des approches précédentes pour éviter ou limiter les inconvénients.
  • Accès direct aux éléments, caractère dynamique, gaspillage de mémoire limité.
  • L'ajout d'un élément se fait en temps constant amorti.
  • Possède un tableau d'une certaine capacité et une dimension (inférieure ou égale à la capacité).
  • Chaque élément ajouté incrémente la dimension. Lorsque la dimension atteint la capacité, celle-ci est augmentée, un nouveau tableau est alloué, et les anciennes valeurs sont recopiées.
  • L'opération d'ajout est efficace et se fait en temps constant amorti.
  • La capacité est illimitée et le gaspillage réduit car la capacité est doublé à chaque fois.

Une classe tableau dynamique avec marge

  • Utilisation d'une classe C++ pour encapsuler la structure de données, permettant une manipulation plus sûre et abstraite.
  • La partie publique (interface) de la classe contient les méthodes essentielles à son usage.
  • La partie privée contient la structure de données.
  • La classe TableauDynamiqueAvecMarge possède des méthodes pour créer, détruire, connaître la dimension, lire et écrire des valeurs, et ajouter un élément.
  • La structure de données privée contient un pointeur pour la table, la dimension et la capacité.
  • Le fichier d'en-têtes réunit les déclarations de la classe.
  • Le constructeur initialise un tableau vide avec une capacité initiale.
  • Le destructeur libère la mémoire allouée dynamiquement.
  • La méthode ajouter ajoute un élément, en doublant la capacité si nécessaire.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

C++ Arrays
12 questions

C++ Arrays

WillingSeaborgium avatar
WillingSeaborgium
C++ Module 6: Arrays
18 questions

C++ Module 6: Arrays

IngenuousPhotorealism avatar
IngenuousPhotorealism
CSC 1061 Vectors
22 questions

CSC 1061 Vectors

DivineZebra9695 avatar
DivineZebra9695
Use Quizgecko on...
Browser
Browser