Le problème de maintenance des commandes (ou «maintien de l'ordre dans une liste») est de supporter les opérations:
singleton
: crée une liste avec un élément, lui renvoie un pointeurinsertAfter
: donné un pointeur sur un élément, insère un nouvel élément après, renvoyant un pointeur sur le nouvel élémentdelete
: donne un pointeur sur un élément, le supprime de sa listeminPointer
: étant donné deux pointeurs vers des éléments de la même liste, renvoie celui le plus proche du début de la liste
Je connais trois solutions à ce problème qui effectuent toutes les opérations en temps amorti . Ils utilisent tous la multiplication.
- Athanasios K. Tsakalidis: Maintenir l'ordre dans une liste chaînée généralisée
- Dietz, P., D. Sleator, Deux algorithmes pour maintenir l'ordre dans une liste
- Michael A. Bender, Richard Cole, Erik D. Demaine, Martin Farach-Colton et Jack Zito, «Deux algorithmes simplifiés pour maintenir l'ordre dans une liste»
L'ordre peut-il être maintenu dans une liste en temps amorti sans utiliser d'opérations arithmétiques non en A C 0 ?