У меня есть очередь для создания двусторонней очереди, которая может добавлять, удалять и просматривать элементы с обеих сторон (т.е. спереди и сзади)
У меня есть методы добавления, удаления и просмотра элементов в «голове», но я не могу понять, как сделать то же самое с «хвостом» очереди.
Вот мой код: -
public class dequeue
{
private Node rear;
private Node front;
private int counter;
class Node
{
private String item;
private Node link;
}
public Node()
{
rear = front = null;
counter = 0;
}
public void hAdd(String o)
{
Node temp = new Node();
temp.item =o;
temp.link =null;
if (rear==null)
front = rear = temp;
else
{
rear.link = temp;
rear = temp;
}
counter++;
}
public boolean isEmpty()
{
if(counter==0)
return true;
return false;
}
public Object hPeek()
{
return rear.item;
}
public Object hRemove()
{
if (isEmpty())
return null;
else
{
Object temp=front.item;
front = front.link;
if (front == null)
rear = null;
counter--;
return temp;
}
}
public int size()
{
return counter;
}
public void tAdd(String o)
{
Node temp = new Node();
temp.item =o;
temp.link =null;
if (front==null)
front=rear=temp;
else
{
front.link=temp;
front=temp;
}
counter++;
}
public Object tPeek()
{
return front.item;
}
public Object tRemove()
{
if (isEmpty())
return null;
else
{
Object temp=rear.item;
rear=rear.link;
if (rear==null)
front=null;
counter--;
return temp;
}
}
public String toString()
{
StringBuilder result=new StringBuilder();
Node curr=front;
while(curr!=null)
{
result.append(curr.item+" \n");
curr = curr.link;
}
return result.toString();
}
}