Il problema di manutenzione dell'ordine (o "mantenimento dell'ordine in un elenco") è supportare le operazioni:
singleton
: crea un elenco con un elemento, restituisce un puntatore ad essoinsertAfter
: dato un puntatore a un elemento, inserisce un nuovo elemento dopo di esso, restituendo un puntatore al nuovo elementodelete
: dato un puntatore a un elemento, lo rimuove dal suo elencominPointer
: dati due puntatori agli elementi nella stessa lista, restituisce quello più vicino all'inizio della lista
Sono a conoscenza di tre soluzioni a questo problema che eseguono tutte le operazioni in tempo ammortizzato . Tutti usano la moltiplicazione.
- Athanasios K. Tsakalidis: mantenimento dell'ordine in un elenco collegato generalizzato
- Dietz, P., D. Sleator, Due algoritmi per mantenere l'ordine in un elenco
- Michael A. Bender, Richard Cole, Erik D. Demaine, Martin Farach-Colton e Jack Zito, "Due algoritmi semplificati per mantenere l'ordine in un elenco"
L'ordine può essere mantenuto in un elenco nel tempo ammortizzato senza utilizzare operazioni aritmetiche non in A C 0 ?