我一直在尝试编写一个方法来接收链表,并使用优先级队列对其进行排序
我不知道如何写这段代码。我知道优先级队列应该如何工作,但我不知道该如何将其放入代码中
Override
public void priorityEnqueue(AnyType x) {
if (isEmpty()){
back = front = new ListNode<>(x);
}
{
back=back.next = new ListNode<>(x);
}
}
我知道这样做只会返回列表,而不会对其进行排序,这正是我需要帮助的地方
这是我算出的答案
@Override
public void priorityEnqueue(AnyType x) {
ListNode<AnyType> node = new ListNode<>(x);
if(front == null){
front = node;
back = node;
}
else{
if(front.element.compareTo(x) > 0){
node.next = front;
front = node;
}
else{
ListNode<AnyType> current = front;
while(current.next != null && current.next.element.compareTo(x) < 0)
current = current.next;
node.next = current.next;
current.next = node;
if(node.next == null)
back = node;
}
}
}