Author: Stan Eisenstat
Subject: Re: [Cs223] Head and Tail Pointers
Date: Wednesday, 18 Mar 2020, 17:36:10
> Message Posted By: Unknown
>
> When we are defining our deque are we allowed to have head and tail
> pointers like the queue in Aspens' notes? Or are we only allowed to have a
> head pointer?
As stated in the specification:
2. The Deque data type should be implemented using a pair of stacks (the H
stack and the T stack), each implemented using a headless, singly-linked
list. To add an item to the tail (head) of the Deque, push it onto the top
of the T (H) stack. To remove an item from the head of the Deque, pop it
off the top of the H stack (but if the H stack is empty, first move items
one at a time from the top of the T stack to the top of the H stack until
the T stack is empty).
As you can see, this is completely different from the
doubly-linked list and ring buffer implementations
described in Aspnes' notes, so the notion of head and
tail pointers does not apply.
=====
> When it is said the deque is implemented as two headless singly-linked
> stacks do we have to define two separate stacks for a deque or can we just
> imagine it is as a queue with the stack functionality of being able to
> push to the head?
Your Deque implementation must be based on two headless,
singly-linked lists.
--Stan-
PREV
INDEX
NEXT