it is for school so i don't want any other methods, i simply want to relink all the nodes with an insertion sort
here's the code i have so far.
public void sort()
{
Link out;
Link in = null;
for (out = first.getNext(); out != null; out = out.getNext())
{
Link temp = new Link(out.getData());
in = out;
while (in.getPrev() != null && in.getPrev().getData() >= temp.getData())
{
in = in.getPrev();
}
Link right = null;
Link left = null;
temp.setNext(in);
if (in.getPrev() == null)
{
temp.setPrev(null);
first = temp;
right = out.getNext();
} else if (in.getNext() == null)
{
in.getPrev().setNext(temp);
temp.setNext(null);
left = out.getPrev();
last = temp;
temp.setPrev(in.getPrev());
} else
{
right = out.getNext();
left = out.getPrev();
in.getPrev().setNext(temp);
temp.setPrev(in.getPrev());
}
in.setPrev(temp);
if (right != null && left != null)
{
right.setPrev(out.getPrev());
left.setNext(out.getNext());
} else if (left != null)
{
left.setNext(out.getNext());
} else if (right != null)
{
right.setPrev(out.getPrev());
}
}
}

New Topic/Question
Reply
MultiQuote









|