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

added some pseudo code todo and explanations

parent 9ced4a29
No related branches found
No related tags found
No related merge requests found
...@@ -15,12 +15,6 @@ patat: ...@@ -15,12 +15,6 @@ patat:
backend: auto backend: auto
--- ---
# Le cours précédent
* Questions:
# Les B-arbres # Les B-arbres
## Problématique ## Problématique
...@@ -391,7 +385,7 @@ P_0 | K_1 | P_1 | K_2 | | P_i | K_{i+1} | | P_{m-1} | K_m | P_m ...@@ -391,7 +385,7 @@ P_0 | K_1 | P_1 | K_2 | | P_i | K_{i+1} | | P_{m-1} | K_m | P_m
```C ```C
struct page struct page
int ordre, nb entier ordre, nb
element tab[2*ordre + 2] element tab[2*ordre + 2]
``` ```
...@@ -403,6 +397,57 @@ struct element ...@@ -403,6 +397,57 @@ struct element
# Les B-arbres # Les B-arbres
## Les fonctions utilitaires (5min matrix)
```C
booléen est_feuille(page) // la page est elle une feuille?
entier position(page, valeur) // à quelle indice on insère?
```
. . .
```C
booléen est_feuille(page)
retourne (page.tab[0] == vide)
entier position(page, valeur)
i = 0
tant que i < page.nb && val >= page.tab[i]
i += 1
retourne i
```
# Les B-arbres
\footnotesize
## Les fonctions utilitaires (5min matrix)
```C
page nouvelle_page(ordre) // creer une page
rien liberer_memoire(page) // liberer tout un arbre!
```
. . .
```C
page nouvelle_page(ordre)
page = allouer(page)
page.ordre = ordre
page.nb = 0
page.tab = allouer(2*ordre+2)
retourner page
rien liberer_memoire(page)
si est_feuille(page)
liberer(page.tab)
liberer(page)
sinon
pour fille dans page.tab
liberer_memoire(fille)
liberer(page.tab)
liberer(page)
```
# Les B-arbres
<!-- # Les B-arbres --> <!-- # Les B-arbres -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment