дело вкуса, конечно, но это классическая очередь Окасаки из двух списков, если не смущает, что периодически будет делаться реверс списка на 500 тыс элементов, то почему бы и нет
дело вкуса, конечно, но это классическая очередь Окасаки из двух списков, если не смущает, что периодически будет делаться реверс списка на 500 тыс элементов, то почему бы и нет
дело вкуса, конечно, но это классическая очередь Окасаки из двух списков, если не смущает, что периодически будет делаться реверс списка на 500 тыс элементов, то почему бы и нет
кто нибудь работал с queue структурой, которая из одноименного модуля? Как она по скорости? Или что то другое надо использовать для FIFO
Нормально работает. Суть в том, что не совсем стабильно. Если долго класть в очередь, а потом вытащить два элемента, то это будет работать долго, потому что будет разворачиваться список положенных элементов.
У нее амортизированная сложность O(1). Но да, время от времени будет случаться llists:reverse для всей (половины?) очереди. Т.е. latency spike и много мусора в heap от reverse
У нее амортизированная сложность O(1). Но да, время от времени будет случаться llists:reverse для всей (половины?) очереди. Т.е. latency spike и много мусора в heap от reverse
а мусор (фрагментация?) от reverse почему? перелинковка же