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 ?
ds.data-structures
soft-question
pl.programming-languages
graph-theory
tree
cc.complexity-theory
pcp
co.combinatorics
cg.comp-geom
pr.probability
vc-dimension
cc.complexity-theory
complexity-classes
relativization
soft-question
advice-request
career
soft-question
research-practice
paper-review
journals
co.combinatorics
cc.complexity-theory
complexity-classes
pr.probability
average-case-complexity
cc.complexity-theory
lo.logic
descriptive-complexity
finite-model-theory
ds.algorithms
cc.complexity-theory
approximation-hardness
csp
pcp
cc.complexity-theory
circuit-complexity
jbapple
fonte
fonte
Respostas:
Sim!
Veja também o exercício 8.12 de estruturas de dados abertas e o "Um novo método para equilibrar árvores de pesquisa binária" de Roura .
fonte