Deque impl.
Steven Schveighoffer
schveiguy at yahoo.com
Wed Jan 30 17:34:38 PST 2013
On Tue, 29 Jan 2013 15:08:36 -0500, Dmitry Olshansky
<dmitry.olsh at gmail.com> wrote
>
> I skimmed through it what caught my eye instantly: this deque exposes
> too much of operations that are not required of any deque. The end
> result is that it's pretty much always have to be an array (all these
> indexed inserts, removals etc.). To put it plainly it *is* an array.
>
> To be honest deque can be implemented far better if random access as in
> indexing, removal and such is dropped. Canonical interface is:
>
> front
> insertFront
> removeFront
> back
> insertBack
> removeBack
> length (and even this could be dropped sometimes)
> empty
>
> That is all.
Hm... I thought deque's major draw was that it had O(1) insertion/removal
from the front and back, and ALSO had O(1) indexing.
At least in C++, indexing is supposed to be constant.
My implementation (probably very naive) is two D arrays placed front to
front. This allows the O(1) insertion/removal and O(1) indexing.
http://dsource.org/projects/dcollections/browser/branches/d2/dcollections/Deque.d
-Steve
More information about the Digitalmars-d
mailing list