APP3: Flashcards
Qu’est-ce que une queue?
C’est un tableau avec des contraintes au niveau de l’insertion et de l’élimination.
Le type c’est du genre first-in, first-out
Qu’est-ce qu’un Stack?
C’est un tableau avec contrainte au niveau de l’insertion et elimation d’élément.
Un stack est de type last in, first out
Qu’est-ce qu’une liste chaîner?
C’est un tableau dont chaque case contient non seulement une valeur , mais également un pointeur vers la prochaine case
Qu’est-ce que des opérateurs binaires?
C’est quand lors de la surcharge d’opérateur celui-ci requiert de deux argument.
ex:
, , *, =, +, -, +=, ->, /,
Qu’est-ce qu’un opérateur unaire?
C’est quand la surcharge d’opérateur ne prend qu’un seul argument.
ex:
++, –, *, ->, &
Quelles sont les deux types d’opérateurs ?
- Des opérateurs unaires
- Des opérateurs binaires
Pourquoi il serai nécessaire de surcharger des opérateurs?
Quand on crée des class pour représenter des objets réel, la definition par défaut d'un operateur peut s'appliquer différament pour cet objet. Par exemple: - si on veut additioner deux objet de la classe date, l'addition par défault ne s'applique pas, car en effet , il faut plutôt addition chaque jour, mois et année séparément.
Qu’est-ce que un pile
- Permet de socker des données
- Première insérer/dernière retirer
- Première en bas/dernière en haut
Pseudocode pour insérer
FONCTION Insérer(val) : ok // val (entier) : la valeur à ajouter // ok (booléen) : indique si l’ajout est réussi ou non DÉBUT // temp (pointeur d’entier) SI taille ≥ capacité ALORS temp := nouveau tableau d’entiers de 2 fois plus grand que l’ancien POUR i := 0 À capacité temp[i] := data[i] Libérer data data := temp capacité := capacité * 2 data[taille] := valeur Incrémenter taille ok := vrai Retourner ok FIN 2 de 8 Sous-question 1.3 Réalisez le code C++ de la méthode inser
Code en C++ pour inserer
bool Pile::inserer(int val) { int *temp; if(taille >= capacite) { temp = new int[capacite*2]; for(int i = 0; i < capacite ; i++) temp[i] = data[i]; delete [] data; data = temp; capacite *= 2; } data[taille++] = val; return true; }
Qu’est-ce que une copy profonde(Deepcopy)
-Permet de faire un clône parfait d’un objet et non une copie
Quand utilisé le Deepcopy
Il faut l’utiliser quand une classe contient un pointeur pour éviter que deux pointeur pointe à la même région de mémoire
Pourquoi il peut être utile, lors de la surcharge d’oppérateur, qu’ils retourne une valeur?
Il est utile pour les fois qu’on voudrai faires des assignation en cascade
Il est utile d’utilise des templates quand…
... quand une fonction ou une class peut se généraliser à tout type de données. ex: une class de liste ou une fonction d'affichage de tableau