Skip to content
Snippets Groups Projects

Pk

Merged pierre.kunzli requested to merge pk into master
4 unresolved threads

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • 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
  • 225 231 sinon
    226 232 sous_page = page.tab[position(page, element)].page
    227 233 inserer_element(sous_page, element)
    228 si element.page != vide
    234 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
    • je me dis que rien faire c'est ok. on veut pas tuer l'élément...

    • C'est pas pour tuer l'élément, c'est que sinon on aura un appel à placer dans tout les retours récursifs après inserer_element dans inserer_element ... vois tu ce que je veux dire ?

    • Alors qu'une fois qu'un "placer" se fait sans scinder, faut pas refaire des placer plus haut dans l'arbre. Ou ça se fait par un autre moyen ?

    • 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.malaspin
    • Baaa 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).

    • Please register or sign in to reply
  • pierre.kunzli added 1 commit

    added 1 commit

    Compare with previous version

  • pierre.kunzli added 2 commits

    added 2 commits

    • 8e4ca0ea - 1 commit from branch master
    • ea2c797e - Merge branch 'master' into pk

    Compare with previous version

  • 241 247
    242 248 ```C
    243 249 rien placer(page, element)
    244 250 i = position(page, element.clé)
  • c'est trop tard, je me suis détruit la main au foot. je merge.

  • mentioned in commit e69c6ef3

  • Please register or sign in to reply
    Loading