如何使用优先级队列对链表进行排序



我一直在尝试编写一个方法来接收链表,并使用优先级队列对其进行排序

我不知道如何写这段代码。我知道优先级队列应该如何工作,但我不知道该如何将其放入代码中

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;
}
}
}        

相关内容

  • 没有找到相关文章

最新更新