Mantenimento dell'ordine in una lista in


15

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 esso
  • insertAfter: dato un puntatore a un elemento, inserisce un nuovo elemento dopo di esso, restituendo un puntatore al nuovo elemento
  • delete: dato un puntatore a un elemento, lo rimuove dal suo elenco
  • minPointer: 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.O(1)

L'ordine può essere mantenuto in un elenco nel tempo ammortizzato senza utilizzare operazioni aritmetiche non in A C 0 ?O(1)AC0


La moltiplicazione è stata solo recentemente (dal Pentium III) in . Possiamo includere soluzioni che utilizzano la moltiplicazione? AC0
AL

UNC0UNC0

Trovato dove ho letto su questo; era circa Pentium 4 non III; e non ha implementato la moltiplicazione, ma ha lavorato attorno ad esso con una nuova istruzione di quel processore: M. Thorup, "On AC0 Implements of Fusion Trees and Atomic Heaps", in Atti del quattordicesimo simposio annuale ACM-SIAM su Discrete Algorithms, Philadelphia, PA, USA, 2003, pagg. 699–707.
AL

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.