O problema de manutenção de pedidos (ou "manutenção de pedidos em uma lista") é dar suporte às operações:
singleton
: cria uma lista com um item, retorna um ponteiro para eleinsertAfter
: dado um ponteiro para um item, insere um novo item depois dele, retornando um ponteiro para o novo itemdelete
: dado um ponteiro para um item, remove-o da sua listaminPointer
: dado dois ponteiros para itens da mesma lista, retorna o mais próximo da frente da lista
Estou ciente de três soluções para esse problema que executam todas as operações em tempo amortizado. Todos eles usam multiplicação.
- Athanasios K. Tsakalidis: manutenção da ordem em uma lista vinculada generalizada
- Dietz, P., D. Sleator, Dois algoritmos para manter a ordem em uma lista
- Michael A. Bender, Richard Cole, Erik D. Demaine, Martin Farach-Colton e Jack Zito, "Dois algoritmos simplificados para manter a ordem em uma lista"
O pedido pode ser mantido em uma lista em tempo amortizado sem o uso de operações aritméticas que não estejam em A C 0 ?
A multiplicação apenas recentemente (desde Pentium III) esteve em . Podemos incluir soluções que usam multiplicação?
—
AT
Encontrei onde li sobre isso; tratava-se de Pentium 4 e não III; e não implementou a multiplicação. PA, EUA, 2003, pp. 699–707.
—
AT