Skip to content
Snippets Groups Projects
Verified Commit f76b59aa authored by orestis.malaspin's avatar orestis.malaspin
Browse files

typos

parent 623780f1
No related branches found
No related tags found
No related merge requests found
Pipeline #36681 passed
...@@ -12,12 +12,12 @@ date: "2024-12-16" ...@@ -12,12 +12,12 @@ date: "2024-12-16"
* Structure de données abstraite permettant le stockage d'éléments. * Structure de données abstraite permettant le stockage d'éléments.
* *FIFO*: First In First Out, ou première entrée première sortie. * *FIFO*: First In First Out, ou première entrée première sortie.
* Analogue de la vie "réelle"": * Analogue de la vie "réelle"":
* File à un guichet, * File à un guichet,
* Serveur d'impressions, * Serveur d'impressions,
* Mémoire tampon, ... * Mémoire tampon, ...
## Fonctionnalités ## Fonctionnalités
. . . . . .
* Enfiler: ajouter un élément à la fin de la file. * Enfiler: ajouter un élément à la fin de la file.
...@@ -85,7 +85,7 @@ void queue_destroy(queue *fa); ...@@ -85,7 +85,7 @@ void queue_destroy(queue *fa);
# Enfilage # Enfilage
## Deux cas différents: ## Deux cas différents
1. La file est vide (faire un dessin): 1. La file est vide (faire un dessin):
...@@ -136,7 +136,6 @@ void queue_enqueue(queue *fa, int val) { ...@@ -136,7 +136,6 @@ void queue_enqueue(queue *fa, int val) {
![Extraction d'une file d'attente de longueur 1.](./figs/fig_queue_extract_one.svg){width=25%} ![Extraction d'une file d'attente de longueur 1.](./figs/fig_queue_extract_one.svg){width=25%}
3. La file est vide (problème) 3. La file est vide (problème)
# Défilage # Défilage
...@@ -172,7 +171,7 @@ On défile jusqu'à ce que la file soit vide! ...@@ -172,7 +171,7 @@ On défile jusqu'à ce que la file soit vide!
# Complexité # Complexité
## Quelle sont les complexité de: ## Quelle est la complexité de
* Enfiler? * Enfiler?
...@@ -188,7 +187,6 @@ On défile jusqu'à ce que la file soit vide! ...@@ -188,7 +187,6 @@ On défile jusqu'à ce que la file soit vide!
* Est vide? * Est vide?
# Implémentation alternative # Implémentation alternative
## Comment implémenter la file autrement? ## Comment implémenter la file autrement?
...@@ -236,7 +234,6 @@ typedef struct _queue { ...@@ -236,7 +234,6 @@ typedef struct _queue {
``` ```
* Enfiler? * Enfiler?
. . . . . .
...@@ -261,7 +258,7 @@ typedef struct _queue { ...@@ -261,7 +258,7 @@ typedef struct _queue {
# Complexité # Complexité
## Quelle sont les complexités de: ## Quelle est les complexités de
* Initialisation? * Initialisation?
...@@ -282,7 +279,6 @@ typedef struct _queue { ...@@ -282,7 +279,6 @@ typedef struct _queue {
``` ```
* Enfiler? * Enfiler?
. . . . . .
...@@ -421,7 +417,6 @@ Une liste chaînée triée est: ...@@ -421,7 +417,6 @@ Une liste chaînée triée est:
## Quelle structure de données dans notre cas? ## Quelle structure de données dans notre cas?
Une liste chaînée bien sûr (oui c'est pour vous entraîner)! Une liste chaînée bien sûr (oui c'est pour vous entraîner)!
```C ```C
...@@ -535,9 +530,9 @@ sorted_list sorted_list_push(sorted_list list, int val) { ...@@ -535,9 +530,9 @@ sorted_list sorted_list_push(sorted_list list, int val) {
sorted_list sorted_list_extract(sorted_list list, int val) { sorted_list sorted_list_extract(sorted_list list, int val) {
element *prec = *crt = list; // needed to glue elements together element *prec = *crt = list; // needed to glue elements together
while (NULL != crt && val > crt->data) { while (NULL != crt && val > crt->data) {
prec = crt; prec = crt;
crt = crt->next; crt = crt->next;
} }
if (NULL != crt && prec != crt && crt->data == val) { // glue things together if (NULL != crt && prec != crt && crt->data == val) { // glue things together
prec->next = crt->next; prec->next = crt->next;
free(crt); free(crt);
...@@ -546,7 +541,6 @@ sorted_list sorted_list_extract(sorted_list list, int val) { ...@@ -546,7 +541,6 @@ sorted_list sorted_list_extract(sorted_list list, int val) {
} }
``` ```
# L'extraction (2/3) # L'extraction (2/3)
2. L'élément à extraire est le premier élément de la liste 2. L'élément à extraire est le premier élément de la liste
...@@ -563,9 +557,9 @@ sorted_list sorted_list_extract(sorted_list list, int val) { ...@@ -563,9 +557,9 @@ sorted_list sorted_list_extract(sorted_list list, int val) {
sorted_list sorted_list_extract(sorted_list list, int val) { sorted_list sorted_list_extract(sorted_list list, int val) {
element *prec = *crt = list; // needed to glue elements together element *prec = *crt = list; // needed to glue elements together
while (NULL != crt && val > crt->data) { while (NULL != crt && val > crt->data) {
prec = crt; prec = crt;
crt = crt->next; crt = crt->next;
} }
// glue things together // glue things together
if (NULL != crt && crt->data == val && prec == crt) { if (NULL != crt && crt->data == val && prec == crt) {
list = list->next; list = list->next;
...@@ -594,9 +588,9 @@ On retourne la liste inchangée. ...@@ -594,9 +588,9 @@ On retourne la liste inchangée.
sorted_list sorted_list_extract(sorted_list list, int val) { sorted_list sorted_list_extract(sorted_list list, int val) {
element *prec = *crt = list; // needed to glue elements together element *prec = *crt = list; // needed to glue elements together
while (NULL != crt && val > crt->data) { while (NULL != crt && val > crt->data) {
prec = crt; prec = crt;
crt = crt->next; crt = crt->next;
} }
if (NULL == crt || crt->data != val) { // val not present if (NULL == crt || crt->data != val) { // val not present
return list; return list;
} }
...@@ -605,8 +599,6 @@ sorted_list sorted_list_extract(sorted_list list, int val) { ...@@ -605,8 +599,6 @@ sorted_list sorted_list_extract(sorted_list list, int val) {
# La recherche # La recherche
```C ```C
element* sorted_list_search(sorted_list list, int val); element* sorted_list_search(sorted_list list, int val);
``` ```
...@@ -692,14 +684,13 @@ $$ ...@@ -692,14 +684,13 @@ $$
\mathcal{O}(N). \mathcal{O}(N).
$$ $$
# Liste doublement chaînée # Liste doublement chaînée
## Application: navigateur ou éditeur de texte ## Application: navigateur ou éditeur de texte
* Avec une liste chaînée: * Avec une liste chaînée:
* Comment implémenter les fonctions `back` et `forward` d'un navigateur? * Comment implémenter les fonctions `back` et `forward` d'un navigateur?
* Comment implémenter les fonctions `undo` et `redo` d'un éditeur de texte? * Comment implémenter les fonctions `undo` et `redo` d'un éditeur de texte?
. . . . . .
...@@ -737,7 +728,7 @@ Pas possible. ...@@ -737,7 +728,7 @@ Pas possible.
2. Écrire les fonctionnalités de création et consultation 2. Écrire les fonctionnalités de création et consultation
```C ```C
// crée la liste doublement chaînée // crée la liste doublement chaînée
dll dll_create(); dll dll_create();
// retourne la valeur à la position actuelle dans la liste // retourne la valeur à la position actuelle dans la liste
...@@ -756,9 +747,9 @@ void dll_print(dll list); ...@@ -756,9 +747,9 @@ void dll_print(dll list);
# Liste doublement chaînée # Liste doublement chaînée
3. Écrire les fonctionnalités de manipulation 3. Écrire les fonctionnalités de manipulation
```C ```C
// déplace pos au début de la liste // déplace pos au début de la liste
dll dll_move_to_head(dll list); dll dll_move_to_head(dll list);
// déplace pos à la position suivante dans la liste // déplace pos à la position suivante dans la liste
...@@ -789,4 +780,3 @@ int dll_pop(dll *list); ...@@ -789,4 +780,3 @@ int dll_pop(dll *list);
// vide la liste // vide la liste
void dll_destroy(dll *list); void dll_destroy(dll *list);
``` ```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment