For some hw I'm supposed to have a method that is supposed to reverse a stack that is implemented by a double-linked list. The hint we got is that we're supposed to switch up the head and the tail, but I'm not sure what I'm supposed to do and what to do with the next and prev in my push() and pop() methods. Heres my methods
public void push(Object o)
{
ListNode secondtolast = tail.getPrev();
ListNode last = new ListNode(o, tail, secondtolast);
secondtolast.setNext(last);
tail.setPrev(last);
size++;
}
public Object pop() throws StackEmptyException
{
if (isEmpty())
throw new StackEmptyException("Stack is empty.");
ListNode last = tail.getPrev();
Object o = last.getElement();
ListNode secondtolast = last.getPrev();
tail.setPrev(secondtolast);
secondtolast.setNext(tail);
size--;
return o;
}
public void push(Object o)
{
ListNode secondtolast = tail.getPrev();
ListNode last = new ListNode(o, tail, secondtolast);
secondtolast.setNext(last);
tail.setPrev(last);
size++;
}
public Object pop() throws StackEmptyException
{
if (isEmpty())
throw new StackEmptyException("Stack is empty.");
ListNode last = tail.getPrev();
Object o = last.getElement();
ListNode secondtolast = last.getPrev();
tail.setPrev(secondtolast);
secondtolast.setNext(tail);
size--;
return o;
}