Pk
J'ai un peu modifié inserer_element et placer, j'ai l'impression qu'il faut qqch pour eviter de refaire des "placer" dans tous les appels recursifs des qu'un scinder s'est produit, mais continuer à en faire tant qu'on scinde (je sais pas si c'est clair)
Merge request reports
Activity
- Resolved by orestis.malaspin
202 205 ```C 203 206 page inserer(page, valeur) 204 207 element = nouvel_element(valeur) 205 inserer_element(page, element) // on change elmement pour savoir s'il faut le remonter 206 si element.page != vide 207 page = ajouter_niveau(page, element) // si on atteint le sommet! 208 // on change element pour savoir s'il faut le remonter 209 inserer_element(page, element) 210 si element != vide && element.page != vide 248 254 page.nb += 1 249 255 si page.nb > 2*page.ordre 250 256 scinder(page, element) 257 sinon ah non mais je suis con comme un balais. il manque un
si est_dans_page(page, element.clef) retourne
dans placer. Ensuite je pense que c'est ok. Comme ça on modifie pas l'argument de placer. Tu en dis quoi?
Edited by orestis.malaspinBaaa pas sur. Il y a des appels recursifs à inserer_element qui vont aboutir sur un placer. Dans ce placer, il se peut qu'on scinde et qu'on se retrouve avec un element.page != vide (élément promu). Il faut alors le placer après le retour de inserer_element. Mais pour les autres appels à inserer_element qui restent empilés ? il faut leur signaler qu'il ne faut pas faire de placer (element va pointer sur l'élément qui a été promu plus bas dans l'arbre).
added 2 commits
241 247 242 248 ```C 243 249 rien placer(page, element) 244 250 i = position(page, element.clé) changed this line in version 6 of the diff
mentioned in commit e69c6ef3