Мне было поручено создать приоритетную очередь с нуля без программ расширения.
Основная задача, стоящая перед нами, заключается в создании очереди приоритетов для системы ИТ-билетов, которая позволяет ИТ-специалистам определять приоритеты, какие задачи внутри компании должны быть выполнены в первую очередь. (приоритет = 1 -> самый высокий приоритет и 4 самый низкий).
Я пытаюсь сделать это через односвязный список.
Моя проблема в том, как только моя функция insertInQueue (Ticket T) принимает последнее значение в ней, происходит сбой.
Оператор возврата ошибки
Exception in thread "main" java.lang.NullPointerException
at Queue.insertInQueue(Queue.java:36)
(строка кода в строке 36):
`if( temp.getNextTicket().getPriority() > T.getPriority())
at Main.main(Main.java:21)
(последний объект, который войдет в систему)
private Ticket head;
private Ticket tail;
public void insertInQueue(Ticket T){
Ticket temp = head;
if(head == null){ //When no values are in the queue
head = T; //head = Ticket
tail = T; //tail = Ticket
}else if(T.getNextTicket() == null){
tail.setNextTicket(T);
tail = T;
}
else{
while( temp != null ){
if( temp.getNextTicket().getPriority() > T.getPriority()){
T.setNextTicket(temp.getNextTicket());
temp.setNextTicket(T);
}
temp = temp.getNextTicket();
}
}
}
Пример ввода:
Ticket T8 = new Ticket(8, "Ben_DG", 4);
Я пробовал несколько разных вещей, но ничего не получил. Кто-нибудь сможет мне помочь?
Если вам понадобится больше моего кода, дайте мне знать, и я опубликую его. (немного обеспокоен тем, что некоторые одноклассники украдут его)
Спасибо!