¿Cuáles son mis opciones allí? Necesito llamar a un montón de append
s (al extremo derecho) y popleft
s (desde el extremo izquierdo, naturalmente), pero también para leer desde la mitad del almacenamiento, que crecerá constantemente, por la naturaleza del algoritmo. Me gustaría tener todas estas operaciones en O(1)
.O (1) deque de números enteros indexables en Python
Podría implementarlo en C con bastante facilidad en una matriz con dirección circular (¿cuál es la palabra?) Que crecería automáticamente cuando esté llena; pero ¿qué hay de Python? También se agradecen los punteros a otros idiomas (me doy cuenta de que la etiqueta "collections" está más orientada a Java, y agradecería la comparación, pero como objetivo secundario).
Vengo de un fondo Lisp y me sorprendió saber que en Python, la eliminación de un elemento principal de una lista es una operación O(n)
. Un deque
podría ser una respuesta, excepto que la documentación dice que el acceso es O(n)
en el medio. ¿Hay algo más, preconstruido?
en general, http://en.wikipedia.org/wiki/Hashed_array_tree podría ser relevante. –